I want to create a trigger to check if a record exist before insert, if it exists rollback, if not continue to do the insert. The thing is when I do the insert it always rollback. what should I do?
ALTER TRIGGER [dbo].[CHECKCONSOMMATION]
ON [dbo].[ConsommationEau]
FOR INSERT
AS
DECLARE @IDABONNEMENT INT
DECLARE @DEFMONTH DATETIME
SELECT @IDABONNEMENT = inserted.idAbonnement FROM inserted
SELECT @DEFMONTH = inserted.Periode FROM inserted
IF EXISTS (SELECT 1 FROM ConsommationEau WHERE idAbonnement = @IDABONNEMENT AND DATEDIFF(MONTH, Periode, @DEFMONTH) = 0)
BEGIN
RAISERROR('THIS RECORD IS ALREADY EXISTS', 10, 1)
ROLLBACK
RETURN
END
and this my table.
USE [GESTEAU]
GO
/****** Object: Table [dbo].[ConsommationEau] Script Date: 4/20/2017
:08:53 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ConsommationEau](
[idConsomationEau] [int] IDENTITY(1,1) NOT NULL,
[Periode] [date] NULL,
[Qte] [int] NULL,
[idAbonnement] [int] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[ConsommationEau] WITH CHECK ADD FOREIGN
KEY([idAbonnement])
REFERENCES [dbo].[AbonnementEau] ([idAbonnement])
GO