SQL Server 中 触发器 简单示例
2007-03-09 10:02
239 查看
注意 对 inserted,deleted 的查询 使用
-------------------------
--当person表 新增 一条person记录时
--将 该记录的主键personName 保存在changeTable表中
USE TestDB
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'personInsert' AND type = 'TR')
DROP TRIGGER personInsert
GO
CREATE TRIGGER personInsert
ON person
FOR INSERT
AS
INSERT INTO TestDB.dbo.changeTable
(changeTableName, changeType, changeTablePK, changeTablePKValue)
SELECT 'person','INSERT','personName',personName FROM INSERTED
GO
--当person表 修改 一条person记录时
--将 该记录的主键personName 保存在changeTable表中
USE TestDB
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'personUpdate' AND type = 'TR')
DROP TRIGGER personUpdate
GO
CREATE TRIGGER personUpdate
ON person
FOR UPDATE
AS
INSERT INTO TestDB.dbo.changeTable
(changeTableName, changeType, changeTablePK, changeTablePKValue)
SELECT 'person','UPDATE','personName',personName FROM INSERTED
GO
--当person表 删除 一条person记录时
--将 该记录的主键personName 保存在changeTable表中
USE TestDB
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'personDelete' AND type = 'TR')
DROP TRIGGER personDelete
GO
CREATE TRIGGER personUpdate
ON person
FOR DELETE
AS
INSERT INTO TestDB.dbo.changeTable
(changeTableName, changeType, changeTablePK, changeTablePKValue)
SELECT 'person','DELETE','personName',personName FROM DELETED
GO
-------------------------
--当person表 新增 一条person记录时
--将 该记录的主键personName 保存在changeTable表中
USE TestDB
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'personInsert' AND type = 'TR')
DROP TRIGGER personInsert
GO
CREATE TRIGGER personInsert
ON person
FOR INSERT
AS
INSERT INTO TestDB.dbo.changeTable
(changeTableName, changeType, changeTablePK, changeTablePKValue)
SELECT 'person','INSERT','personName',personName FROM INSERTED
GO
--当person表 修改 一条person记录时
--将 该记录的主键personName 保存在changeTable表中
USE TestDB
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'personUpdate' AND type = 'TR')
DROP TRIGGER personUpdate
GO
CREATE TRIGGER personUpdate
ON person
FOR UPDATE
AS
INSERT INTO TestDB.dbo.changeTable
(changeTableName, changeType, changeTablePK, changeTablePKValue)
SELECT 'person','UPDATE','personName',personName FROM INSERTED
GO
--当person表 删除 一条person记录时
--将 该记录的主键personName 保存在changeTable表中
USE TestDB
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'personDelete' AND type = 'TR')
DROP TRIGGER personDelete
GO
CREATE TRIGGER personUpdate
ON person
FOR DELETE
AS
INSERT INTO TestDB.dbo.changeTable
(changeTableName, changeType, changeTablePK, changeTablePKValue)
SELECT 'person','DELETE','personName',personName FROM DELETED
GO
相关文章推荐
- SQL Server 中 触发器 简单示例
- 简单创建序列和触发器示例
- MySQL触发器简单用法示例
- SQL Server创建、删除、修改、查看触发器示例
- MySQL 触发器 存储过程 自定义函数 视图 简单示例
- SQL server中的简单触发器
- SQL server 触发器示例
- SQL Server简单查询示例汇总
- sql server 触发器简单学习
- WPF 属性和触发器 简单示例 备忘
- 一个最简单的SQL SERVER 触发器
- 存储过程触发器job简单示例
- SQL Server 触发器创建、删除、修改、查看示例
- MySQL 函数存储过程触发器定义简单示例
- SQL Server一个表添加数据,引发另一个表更新数据 的一个简单触发器例子
- 简单触发器示例
- MySQL 触发器、存储过程、事务简单示例
- sql server触发器的简单使用
- 触发器的简单应用示例
- SQL Server-简单查询示例(十一)