triggerdemo1.sql

来自「T-SQL示例大全」· SQL 代码 · 共 42 行

SQL
42
字号
/* 
文件名称: TriggerDemo1.sql
目        的: 示范如何使用 AFTER 触发程序
*/
USE 北风贸易
GO

if exists (select * from dbo.sysobjects where id = object_id(N'MyTable') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table MyTable
GO

-- 建立一个数据表
CREATE TABLE MyTable (编号 nchar(5) PRIMARY KEY,姓名 nvarchar(12))
GO

-- 为数据表 MyTable 建立一个由新增作业引发执行的 AFTER 触发程序
CREATE TRIGGER InsertTrigger ON MyTable
AFTER INSERT
AS
IF (SELECT count(*) FROM inserted WHERE 姓名 = N'章立民') > 0
    BEGIN
         PRINT '数据不符,姓名不可以是章立民'
         DELETE MyTable WHERE 姓名 = N'章立民'
    END
  
GO

-- 为数据表 MyTable 建立一个由更新作业引发执行的 AFTER 触发程序
CREATE TRIGGER UpdateTrigger ON MyTable
AFTER UPDATE
AS
IF (SELECT count(*) FROM inserted WHERE 姓名 = N'章立民') > 0
    BEGIN
         PRINT '数据不符,姓名不可以是章立民'
         UPDATE MyTable SET MyTable.姓名 = deleted.姓名
              FROM deleted
              WHERE MyTable.姓名 = '章立民' AND MyTable.编号 = deleted.编号
    END
  
GO

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?