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