SQL CLR(三)触发器- SQL Server - 拼吾爱程序人生- {zx1}编程技术的 ...
上一篇:

这一节比较简单了,主要是讲如何在SQLCLR下设计触发器。在SQLServer2005里分两种触发器,DDL和DML两种触发器。DDL触发器是响应CREATE、ALTER 和 DROP 开头的语句。我们常用的是DML触发器,这一类触发器响应当数据库中发生数据操作包括表或视图中修改数据的 INSERT 、UPDATE 或 DELETE 。(文/)

对于.net来讲触发器也是方法,在上方标注 [Microsoft.SqlServer.Server.SqlTrigger]标签(只我这样翻译)。

我们看一个小例子
  1. using System;
  2. using System.Data;
  3. using System.Data.Sql;
  4. using Microsoft.SqlServer.Server;
  5. using System.Data.SqlClient;

  6. public partial class Triggers
  7. {
  8.     //Name触发器的名字
  9.     //Target触发器对应表
  10.     //Event可以是{ FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
  11.     [Microsoft.SqlServer.Server.SqlTrigger(Name = "NameInfoTrigger", Target = "NameInfo", Event = "FOR UPDATE")]
  12.     public static void GetChange()
  13.     {
  14.         using (SqlConnection cn = new SqlConnection())
  15.         {
  16.             cn.ConnectionString = "context connection=true";
  17.             cn.Open();
  18.             using (SqlCommand cmd = cn.CreateCommand())
  19.             {
  20.                 cmd.CommandText = "insert into ChangeHistory select b.name + '->' + a.name,getdate() from INSERTED a JOIN DELETED b ON a.id = b.id";
  21.                 SqlContext.Pipe.ExecuteAndSend(cmd);
  22.             }
  23.         }
  24.     }
  25. }
复制代码
右键部署

数据库里的两张表
附件:
我执行两条UPDATE语句结果
附件:
再执行两条再看结果
附件:
• • 
• • 
• • 
• • 
• • 
• • 
• • 
• • 
• • 
• • 
郑重声明:资讯 【SQL CLR(三)触发器- SQL Server - 拼吾爱程序人生- {zx1}编程技术的 ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——