SQL Server 2005上的CLR和ADO.NET 2.0
2007-05-15 09:28:44 来源:WEB开发网核心提示: 笔者认为,在SQL Server 2005平台上,SQL Server 2005上的CLR和ADO.NET 2.0(3),开发人员的思维要具有扩展性,不仅要考虑SQL Server 本身支持的内容,开发CLR 触发器的时候还可以通过SqlContext.TriggerContext获得当前
笔者认为,在SQL Server 2005平台上,开发人员的思维要具有扩展性,不仅要考虑SQL Server 本身支持的内容,还要考虑到Windows平台支持的内容、企业内部SOA其他应用的支持,直至整个Internet环境下的任何可以用资源。
图3:CLR支持后扩展数据对象的资源分布
相对而言,开发User-Function和User-Defined Procedure都是比较容易,这里笔者就开发CLR 触发器作些说明。正如大家所知,Trigger主要包括两类:“DML 触发器”和“DDL 触发器”。DML触发器主要在DELETE、UPDATE、INSERT的时候触发,DDL 触发器则会在CREATE、ALTER、DROP的时候触发。在使用T-SQL编写触发器的时候可以通过INSERTED和DELETED这两个虚表,结合COLUMN_UPDATED()函数完成DML事件的响应。在集成了CLR之后,用.NET语言写触发器可以访问如下内容:
继续访问DELETED和INSERTED这两个虚表;
通过UPDATE操作,判断哪些列受到了修改;
通过访问数据库对象获得DDL的执行语句;
除此而外,开发CLR 触发器的时候还可以通过SqlContext.TriggerContext获得当前操作的上下文,明确究竟是DML的INSERT、UPDATE、DELETE,还是DDL的CREATE、DROP、ALTER操作。
代码示例1:INSERT或DELETE操作的DML触发器写法
SqlConnection connection = new SqlConnection ("context connection = true");
connection.Open();
SqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT * from " + "inserted";
代码实例2:判断哪些列被UPDATE
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接