SQL触发器复习
来源:互联网 发布:java私塾 编辑:程序博客网 时间:2024/05/17 21:09
SQL触发器中,系统自动会生成两张临时表,分别是deleted 和 inserted 它们是逻辑(概念)表。也可理解为是临时表。
Inserted表就是放新的记录,Delete表就是放旧的记录。并且,它们的表结构与原表是完全相同的。
当插入时,要插入的记录是新的,所以可以在Insert表中找到。
当更新时,要更新的记录是新的,所以可以在Inserted表中找到,被更新的记录是旧的,所以可以在Deleted表中找到。
当删除时,要删除的记录是旧的,所以可以在Deleted表中找到。
格式:
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ] --用于加密触发器
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}
例子:
CREATE TRIGGER DepartLevelTriggerXieYi
ON app_DepartLevel
FOR INSERT
AS
DECLARE @UpLevelCompCode VARCHAR(50)
DECLARE @UpLevelCompName VARCHAR(50)
DECLARE @CurrentLevelCompCode VARCHAR(50)
DECLARE @CurrentLevel VARCHAR(50)
BEGIN
SET @CurrentLevel=(SELECT CurrentLevel FROM INSERTED)
IF(LEN(@CurrentLevel)=6)
BEGIN
SET @UpLevelCompCode=(SELECT UpLevelCompCode FROM INSERTED)
SET @UpLevelCompName=(SELECT UpLevelCompName FROM INSERTED)
SET @CurrentLevelCompCode=(SELECT CurrentLevelCompCode FROM INSERTED)
UPDATE SP_FL_FanLiXieYiGuanLi SET UpLevelCompCode = @UpLevelCompCode,UpLevelCompName = @UpLevelCompName
WHERE CompanyOfServer=@CurrentLevelCompCode
END
END
- SQL触发器复习
- 触发器复习
- sqlserver触发器复习
- 【数据库复习_触发器】
- SQL Server 2008中文版标准教程读书笔记 存储过程与触发器(复习SQL Server 六)
- SQL 触发器
- SQL触发器
- SQL触发器
- SQL触发器
- SQL 触发器
- SQL触发器
- sql触发器
- SQL触发器
- SQL触发器
- Sql触发器
- SQL触发器
- SQL 触发器
- SQL触发器
- MP4封包Xvid+AAC以及Codec ID的isom,mp42,m4v,msnv问题
- MP4封包Xvid+AAC以及Codec ID的isom,mp42,m4v,msnv问题
- MP4封包Xvid+AAC以及Codec ID的isom,mp42,m4v,msnv问题
- html设置子画面的title的一个方法
- 除了被动阅读,用户想要的更多
- SQL触发器复习
- c语言罕见输出格式
- c# 操作excel 总结
- 日常和增量备份mysql
- 软件开发技术高手转向项目管理者要突破的误区
- Java中原生(native)函数的用法
- c语言中的String库
- tomcat dbcp jndi 配置
- oracle 字符串转数组的函数