triggerdemo21.sql
来自「T-SQL示例大全」· SQL 代码 · 共 31 行
SQL
31 行
/*
文件名称: TriggerDemo21.sql
*/
USE pubs
GO
if exists (select * from dbo.sysobjects where id = object_id(N'dbo.conditionalinsert') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger dbo.conditionalinsert
GO
-- 有条件的触发程序会逐个检查每一个新增的数据
-- 记录并删除 title_id 无法与 titles 数据表中对应者
CREATE TRIGGER conditionalinsert
ON sales
AFTER INSERT
AS
-- 如果相对应的个数与新增的个数不符,表示有些数据记录的 title_id 错误
IF (SELECT COUNT(*) FROM titles, inserted
WHERE titles.title_id = inserted.title_id) <> @@ROWCOUNT
BEGIN
--只有 title_id 正确的数据记录才会被新增
DELETE sales FROM sales, inserted
WHERE sales.title_id = inserted.title_id AND
inserted.title_id NOT IN
(SELECT title_id FROM titles)
END
GO
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?