Tema: Procedure
Ver Mensaje Individual
  #11  
Antiguo 29-11-2010
Ledian_Fdez Ledian_Fdez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Ciudad Habana, Cuba
Posts: 242
Reputación: 21
Ledian_Fdez Va por buen camino
Post Problema al lanzar un RAISERROR

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)

Código SQL [-]
IF (@@ROWCOUNT>1)


En espera de su ayuda
Y como siempre mil gracias de antemano.

Salu2,
Ledian.
Responder Con Cita