如果不对.NET程序集和SQL Server CLR相关的安全性问题进行描述,那么对CLR新特性的探讨就不可能是完整的。
在.NET Framework,Visual Studio 2005和SQL Server 2005的集成功能中,最好的特性之一就是支持调试你创建的CLR数据库对象能力。
用户可以使用该聚合功能,与SQL Server内建的聚合函数用法一样。有一点小小的差异是,自定义聚合函数需要加上schema前缀,这样系统才能找到。
CLR聚合是SQL Server 2005引入的另一新的.NET数据库对象类型。本质上,自定义聚合功能是处理查询过程中对聚合数据分组用法的一个扩展功能。
一旦用户定义类型创建好了,你就可以用T-SQL使用它,用法与SQL Server的原生数据类型很像。然而,因为用户定义类型包含方法和属性,所以用起来还有一些差异。
与.NET CLR整合给SQL Server 2005带来的另一个新特性是提供了用户定义类型(UDT)的功能。使用用户定义类型UDT,你可以扩展SQL Server提供的原始类型。
要手工部署代码,你需要复制“ti_ShowInserted.dll”文件到SQL Server数据库系统或者复制到一个SQL Server数据库系统可以访问的共享位置。
除了存储过程和用户定义函数,SQL Server 2005中.NET新整合的能力还提供了对创建触发器的支持。
如果你使用Visual Studio 2005创建SQL Server CLR数据库对象,那么你可以交互式地直接从Visual Studio中部署CLR存储过程。
存储过程是最常见的数据库对象之一,你可以使用某一种.NET语言创建存储过程。CLR存储过程的最大价值之一是替换现存的扩展存储过程。