我想为INSERT
之前使用的一个表创建一个触发器。
我想检查两列是否为NULL,如果它们是NULL
则引发错误,否则INSERT
数据。
到目前为止,我有这个:
CREATE TRIGGER INS_TABLE_1
ON mytable
FOR INSERT
AS
BEGIN
IF (column1 IS NULL OR column2 IS NULL)
BEGIN
RAISERROR ('You are not allowed to Add These Data.', 10, 11)
END
ELSE
INSERT INTO mytable (column1,column2,column3)
END
你能帮帮我吗?
答案 0 :(得分:1)
使用instead trigger和inserted table,如下所示,试一试。
CREATE TRIGGER INS_TABLE_1
ON mytable
INSTEAD OF INSERT
AS
BEGIN
DECLARE @fn varchar(50),@ln varchar(50)
SELECT @fn=column1 ,@ln=column12 from inserted
IF (@fn IS NULL OR @ln IS NULL)
BEGIN
RAISERROR ('You are not allowed to Add These Data.', 10, 11)
END
ELSE
INSERT INTO mytable (column1 ,column2) values (@fn,@ln)
END
inserted表存储INSERT
和UPDATE
语句中受影响行的副本。而不是触发器用触发器定义替换当前的INSERT。