浅谈SQL Server 数据库之触发器
2010-02-26 00:00:00 来源:WEB开发网触发器7_MSDN参考
加密 dml触发器定义
若要确保其他用户不能查看触发器定义,可以使用with encryption子句加密 dml 触发器。
使用with encryption子句后,触发器定义即以无法读取的格式进行存储。
触发器定义加密后,无法进行解密。且任何人都无法进行查看,包括触发器的所有者和系统管理员。
update() 函数:
可用于确定 insert或 update语句是否影响表中的特定列。
无论何时为列赋值,该函数都将返回 true。
使用if update() 子句示例:
if update()子句示例
create table testTable(a int null, b int null)
go
create trigger my_trig
on testTable for insert
as
if update(b)
print '列b已被修改!'
go
insert into testTable(b) values(123);
-- drop table testTable
注意:
由于 delete 语句无法只对某列进行删除,
因此不能将if update()子句应用于delete 语句。
columns_updated() 函数:
也可用于检查 insert或 update语句更新了表中的哪些列。
此函数使用整数位掩码指定要测试的列。
使用columns_updated() 函数示例:
columns_updated()函数示例
create table testTable2(a int null, b int null)
go
create trigger my_trig2
on testTable2 for insert
as
if ( columns_updated() & 2 = 2 )
print '列b已被修改!'
go
insert into testTable2(b) values(123);
-- drop table testTable2
更多精彩
赞助商链接