viernes, 29 de abril de 2016

SQL SERVER: error desde trigger

ALTER TRIGGER [dbo].[Web_Usuarios_Trigger_Controles]
ON [dbo].[Web_Usuarios]
AFTER INSERT, UPDATE
AS 
BEGIN
IF EXISTS (
 SELECT 1
 FROM Web_Usuarios 
 WHERE 
Estado = 'Activa' 
AND [ID] NOT IN (SELECT id FROM INSERTED) /* No es el insertado */
AND [ID Solicitante] IN (SELECT [ID Solicitante] FROM INSERTED) /* Mismo solicitante */
AND 'Activa' IN (SELECT Estado FROM INSERTED) /* El registro insertado está activo */
  )
  BEGIN
 RAISERROR ('Una empresa no puede estar autorizada para más de un cliente.' ,10,1)
 ROLLBACK TRANSACTION
  END 
ELSE
BEGIN
UPDATE [Web_Usuarios] SET [Fecha modificación] = GETDATE() WHERE [ID] IN (SELECT id FROM INSERTED)
END
END
GO