SQL Server - como desplegar o capturar errores en sqlserver

   
Vista:

como desplegar o capturar errores en sqlserver

Publicado por Freddy (1 intervención) el 17/09/2010 23:37:13
Buenas tardes la consulta es..
tengo un proceso en sqlserver 2000 el seguiente

@cedula es una variable declaro la variable como caracter de 50

select @cedula = cedula
from xx
where cedula in ( select cedula from xxx )

el problema que tengo es.?

si hago el select a 1,2 o 3 registro(s) me corre sin problemas
pero cuando lo hago a una tabla a nivel para que me traiga toda la informacion
resulta que existe una o varias cedulas que traen basura en el registro
y me da error

Server: Msg 8115, Level 16, State 8, Line 14
Arithmetic overflow error converting numeric to data type numeric.

en el proceso le trate de agregar un excepcion o un capturar de errores para poder identificar cual cedula o cedulas trae la basura

set @Error = @@ERROR
if @Error <> 0 --if error is raised
begin
goto LogError
end

goto ProcEnd

LogError:
declare @ErrMsg varchar(1000)
select 'MOSTRAR ERROR' from master.dbo.sysmessages
where error = @Error

ProcEnd:

End

pero no me sirve.
alguna idea de como debo hacerlo

me pueden enviar la respuesta al correo hotmail.com gracias...

la idea es cuando este ejecutando el proceso.
si da error. que aparezca el mensaje de error y el valor de la cedula.

talvez exista otra forma mas facil
gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

RE:como desplegar o capturar errores en sqlserver

Publicado por Isaias (3182 intervenciones) el 20/09/2010 21:12:14
Para empezar, en lugar de IN, debes cambiar a EXISTS.

¿Ambos campos CEDULA son del mismo tipo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como desplegar o capturar errores en sqlserver

Publicado por Pedro (20 intervenciones) el 22/09/2010 17:34:05
Ademas, del Exists lo mas limpio es en el Subselect

(Select 1 from xxxxx where a.campo = b.campo)

Esto te daria la existencia en le tabla xxxx del campo de la tabla a.

espero sea esto lo que necesites
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar