1、 概述
从.NET2.0和SQL Sever 2005开始,可以在SQL Server中集成CLR(Common Language Runtime,通用语言运行时)代码,让用户能够编写在SQL Server中运行.NET代码。可以编写存储过程和函数、将用户定义的类型用作数据库表的类型、编写自己的触发器等。这样一来,使用CRL代码能够执行使用SQL代码难以或者无法执行的很多任务。例如,CRL代码可以访问外部资源,如文件和网络资源,就像在.NET应用程序中一样。另外,这种开发技术还有一个重要的优点:应用程序和SQL Server访问使用相同的代码。这意味着无需学习太多有关SQL语言的知识,因为可以不用其高级功能,而使用.NET代码。
然而,这种技术也有其局限性。例如,在SQL Server中运行的代码不能使用.NET框架中的某些命名空间。另外,SQL Server中使用CLR代码并非是说根本不需要使用SQL代码。
要使用CLR集成,必须先在SQL Server中启用CLR集成功能。语句如下:
EXEC sp_configure ‘ clr enable ’ , 1
RECONFIGURE
在要SQL Server中执行.NET代码,必须使用System.Data命名空间中的属性和类型以特定的方式编写它们。然后,将代码编译为程序集(DLL文件),再将程序集加载到SQL Server中。
2、 例子:CLR集成标量函数
//functions.cs
//创建一个sql查询:
3、 例子:CLR集成的表值函数
// Functions.cs
//sql查询:
4、 例子:CLR集成的聚合函数
//Function.cs
//sql查询:
5、例子:CLR存储过程
// Sprocs.cs
//sql查询: