Hello everyone
This is my first experience with triggers. So I used "INSTEAD OF" to check if the line to be inserted in the column is greater than 1000 or it adds error line in my error table, but I get an error this error:
An explicit value of the table's identity column 'CFCO_TRANSACTION' can be specified if the column list is used and IDENTITY_INSERT is ON.
Here is my table struture
USE [TEST_ME] GO /****** Object: Table [dbo].[CFCO_TRANSACTION] Script Date: 07/24/2015 17:40:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[CFCO_TRANSACTION]( [ID_TRANSAC] [int] IDENTITY(1,1) NOT NULL, [COST_PAID] [float] NOT NULL, [PHONE_NUMBER] [decimal](9, 0) NOT NULL, [MONEY_TRANSAC] [decimal](10, 0) NOT NULL, [TOTAL_TRANSAC] [money] NULL, [TRANSAC_STATUS] [tinyint] NULL, [WHEN_DATE] [datetime] NULL, CONSTRAINT [PK_CFCO_TRANSACTION] PRIMARY KEY CLUSTERED ( [ID_TRANSAC] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], CONSTRAINT [IX_CFCO_TRANSACTION_MONEY_TRANSAC] UNIQUE NONCLUSTERED ( [MONEY_TRANSAC] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[CFCO_TRANSACTION] ADD CONSTRAINT [DF_CFCO_TRANSACTION_TRANSAC_STATUS] DEFAULT ((0)) FOR [TRANSAC_STATUS] GO
and here is my T-SQL
CREATE TRIGGER TR_CHECKMONEY ON CFCO_TRANSACTION INSTEAD OF INSERT AS DECLARE @COST_PAID FLOAT SET @COST_PAID=(SELECT COST_PAID FROM inserted) SET @COST_PAID=(SELECT COST_PAID FROM CFCO_TRANSACTION WHERE COST_PAID=(SELECT COST_PAID FROM inserted)) IF @COST_PAID>1000 BEGIN INSERT INTO CFCO_TRANSACTION SELECT * FROM CFCO_TRANSACTION END ELSE BEGIN INSERT INTO CFCO_LOGS_ERROR (LOGS) VALUES ('ERROR THE COST SHOULD BE UP TO 1000') END