WEB开发网
开发学院数据库MSSQL Server 浅谈SQL Server 数据库之触发器 阅读

浅谈SQL Server 数据库之触发器

 2010-02-26 00:00:00 来源:WEB开发网   
核心提示: 触发器7_MSDN参考加密 dml触发器定义若要确保其他用户不能查看触发器定义,可以使用with encryption子句加密 dml 触发器,浅谈SQL Server 数据库之触发器(6),使用with encryption子句后,触发器定义即以无法读取的格式进行存储,因此不能将if upda

触发器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

上一页  1 2 3 4 5 6 

Tags:SQL Server 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接