SQL Server - Insert

 
Vista:

Insert

Publicado por eljhonb (124 intervenciones) el 03/05/2007 15:12:38
Buenas, tengo la siguiente duda.
La tabla tiene claves foráneas que no permiten ingresar valores nulos o repetidos en ciertos campos.
Cuando trato de hacer un insert de información repetida o nula me saca error de foreign key (apenas obvio que muestre este error) pero la variable @ERROR queda en cero (0).
Por qué no toma este error? Cómo puedo hacer para controlar esta situación?

BEGIN TRAN
INSERT INTO TablaA
(C1, C2, C3,C4)
SELECT CT1, CT2, CT3, CT4
FROM TablaA_tmp

IF @@ERROR <> 0
Begin
select @@ERROR, 'La información ya cargada'
ROLLBACK TRAN
End
ELSE
COMMIT TRAN

Muchas 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

RE:Insert

Publicado por Isaías (3308 intervenciones) el 04/05/2007 00:53:50
Debes VALIDAR, antes de hacer tu insert, lo puedes hacer con:

IF EXISTS(.............T-SQL.................)
BEGIN
SELECT 'La informacion ya cargada
RETURN(0)
END
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:Insert

Publicado por eljhonb (124 intervenciones) el 04/05/2007 00:59:40
Sí, eso ya lo había realizado. gracias.
En verdad no sé ni por qué hice esa pregunta tan tonta...

Pero si quisiera saber por qué la variable @@ERROR no toma esa falta de integridad como un error?
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:Insert

Publicado por Isaías (3308 intervenciones) el 04/05/2007 02:48:48
Debes preguntar por la variable de sistema @@ROWCOUNT
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