Hola chicos, que manera de insistir la mía, el problema es que he seguido probando y buscándole una respuesta al ¿Por qué no me lanza el RAISERROR el mensaje?
Lo curioso es que con este código si sale el mensaje:
Código SQL
[-]ALTER TRIGGER [InsUpd_TipoProducto] ON [dbo].[TipoProducto]
FOR INSERT, UPDATE
AS
DECLARE @Codigo Char(2)
SELECT @Codigo=Codigo FROM Inserted
IF EXISTS(SELECT Codigo FROM TipoProducto WHERE Codigo=@Codigo)
BEGIN
RAISERROR ('No se admiten Códigos repetido. Intente con otro por favor.', 16, 1)
ROLLBACK TRAN
RETURN
END
Lo malo es que con este código no hace lo que quiero pues siempre va a existir.
Cuando pongo este otro:
A
Código SQL
[-]LTER TRIGGER [InsUpd_TipoProducto] ON [dbo].[TipoProducto]
FOR INSERT, UPDATE
AS
DECLARE @Codigo Char(2)
SELECT @Codigo=Codigo FROM Inserted
SELECT Codigo FROM TipoProducto WHERE Codigo=@Codigo
IF (@@ROWCOUNT>1)
BEGIN
RAISERROR ('No se admiten Códigos repetido. Intente con otro por favor.', 16, 1)
ROLLBACK TRAN
RETURN
END
No me deja repetir el código, solo que no me lanza el mensaje
¿En que podrá consistir tal hecho?
En lo único que difieren es en la linea:
Código SQL
[-]IF EXISTS(SELECT Codigo FROM TipoProducto WHERE Codigo=@Codigo)
En espera de su ayuda
Y como siempre mil gracias de antemano.
Salu2,
Ledian.