DTS: Como manejar errores en un paso con T-SQL

15/11/2005 - 13:29 por leocharra.news | Informe spam
En un paso de un DTS que sólo contiene instrucciones T-SQL, como se maneja
un error, por ejemplo 2627 (clave duplicada) y así poder reintentar?.
Probé testeando @@ERROR pero nunca llega a esa instrucción, ya que el paso
cancela en la instrucción que da error (en mi caso, el Insert).
Muchas gracias.
Leo

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
16/11/2005 - 03:51 | Informe spam
leocharrua,

Chequea por la existencia de ese valor en la clave primaria.

if exists (select * from [Contactos] where IdCliente = @IdCliente)
GOTO CONTINUAR
else
INSERT INTO [Contactos]
([IdCliente], [SecFinca], [SecContacto], [Telefono], [Nombre],
[NroDocumento], [TipoDocumento], [FechaNacimiento],
[Descripcion], [Clave], [IndLlave], [IndLlamarPorDesactivacion],
[IndAutoDiscado], [Usuario])
VALUES( @IdCliente, @SecFinca, @SecContacto, '', @Nombre, @NroDocumento,
@TipoDocumento, @FechaNacimiento, '', '', 0, 0, 0, '_ADMIN')

...


AMB

"leocharrua" wrote:

Mostrar la cita
#7 leocharrua
16/11/2005 - 16:14 | Informe spam
Entiendo la idea y seguro va a funcionar, pero lo que no entiendo es como no
existe en los DTS la posibilidad de manejar errores "elegantemente" dentro
de un paso.
Muchas gracias y esperemos que en la versión 2005 esté mejorado este
aspecto.
Leo

"Alejandro Mesa" escribió en el
mensaje news:
leocharrua,

Chequea por la existencia de ese valor en la clave primaria.

if exists (select * from [Contactos] where IdCliente = @IdCliente)
GOTO CONTINUAR
else
INSERT INTO [Contactos]
([IdCliente], [SecFinca], [SecContacto], [Telefono], [Nombre],
[NroDocumento], [TipoDocumento], [FechaNacimiento],
[Descripcion], [Clave], [IndLlave], [IndLlamarPorDesactivacion],
[IndAutoDiscado], [Usuario])
VALUES( @IdCliente, @SecFinca, @SecContacto, '', @Nombre, @NroDocumento,
@TipoDocumento, @FechaNacimiento, '', '', 0, 0, 0, '_ADMIN')

...


AMB

"leocharrua" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida