34,590
社区成员
发帖
与我相关
我的任务
分享
USE tempdb
GO
CREATE TABLE T1(ID INT);
go
CREATE TRIGGER tr_T1_insert ON T1 FOR INSERT
AS
RAISERROR (N'失败',16,1)
go
INSERT INTO t1 VALUES(1);--成功
go
SELECT * FROM T1
/*
ID
1
*/
go
DROP TABLE t1
USE tempdb
GO
CREATE TABLE T1(ID INT);
go
CREATE TRIGGER tr_T1_insert ON T1
FOR INSERT
AS
RAISERROR (N'失败',16,1)
ROLLBACK TRAN
go
INSERT INTO t1 VALUES(1);--失败
go
SELECT * FROM T1
go
DROP TABLE t1
消息 50000,级别 16,状态 1,过程 tr_T1_insert,第 4 行
失败
消息 3609,级别 16,状态 1,第 1 行
事务在触发器中结束。批处理已中止。
(0 行受影响)
USE tempdb
GO
CREATE TABLE T1(ID INT);
CREATE TABLE T2(ID INT CHECK (ID%2=1));
go
CREATE TRIGGER tr_T1_insert ON T1 FOR INSERT
AS
INSERT T2(ID) SELECT ID FROM INSERTED
go
INSERT INTO t1 VALUES(1);--成功
go
INSERT INTO t1 VALUES(2);--失败
go
SELECT * FROM T1
SELECT * FROM T2
go
DROP TABLE t1,t2