sql server 触发器应用 insert

时间:2022-10-27 05:03:24
--添加自定义错误码提示,要求先有英文版才能有中文版
EXEC sp_addmessage @msgnum=50001,@severity=10,@msgtext='Violation of the table unique constraint',@lang='us_english'
EXEC sp_addmessage @msgnum=50001,@severity=10,@msgtext='违反了表唯一约束'


--创建触发器
CreateTRIGGER Tig_bidPasslog ON dbo.BidPassLog INSTEAD OF INSERT
AS
IF EXISTS(SELECT * FROM dbo.BidPassLog JOIN inserted ON dbo.BidPassLog.Bidid=INSERTED.Bidid WHERE dbo.BidPassLog.status=0)
BEGIN
--回滚事务,阻止提交

ROLLBACK TRAN
--输出自定义错误码,需要先向数据库中添加错误码

RAISERROR(50001,16,1,'已经存在')
END
ELSE
begin
--插入数据

INSERT dbo.BidPassLog (serialNo,Bidid,[status],RequestTime) SELECT serialNo,Bidid,[status],RequestTime FROM INSERTED
--查询自增主键
select SCOPE_IDENTITY();
END