WEB开发网
开发学院数据库MSSQL Server SQL Server 2005中使用CLR函数实现字符串排序 阅读

SQL Server 2005中使用CLR函数实现字符串排序

 2009-01-05 10:18:43 来源:WEB开发网   
核心提示: vbc.exe应用程序,在.NET 2.0框架目录中可以找到,SQL Server 2005中使用CLR函数实现字符串排序(3),不同的服务器或桌面因安装路径不同可能会有差异,编译成功后,SQL Server 2005显著地增强了数据库编程模型,开发人员可以用任何CLR语言(如C#、VB.

vbc.exe应用程序,在.NET 2.0框架目录中可以找到,不同的服务器或桌面因安装路径不同可能会有差异。

编译成功后,将得到C:SQLServerCLRSortString.dll这个DLL文件。把DLL拷贝到我们的SQL Server机器上

步骤4:在SQL Server中注册DLL

代码编译通过后,您需要与SQL Server中注册DLL。要实现到这一目的,可以在要使用该函数的数据库中能运行这些命令。

注册的目的,就是将外部创建的DLL与SQL Server内部对象进行绑定,这样外部DLL中的函数就可以和SQL Server中的正常函数一样进行调用了。

在下面的函数中,我们可以看到引用CLRFunctions.CLRFunctions.SortString由三个部分组成:

   *CLRFunctions – 装配引用
  *CLRFunctions – VB.net 代码中所引用的类名
  *SortString – VB.net代码中所引用的函数
  CREATE ASSEMBLY CLRFunctions FROM 'C:SQLServerCLRSortString.dll'
  GO
  CREATE FUNCTION dbo.SortString
  (
  @name AS NVARCHAR(255)
  )
  RETURNS NVARCHAR(255)
  AS EXTERNAL NAME CLRFunctions.CLRFunctions.SortString
  GO

步骤5:创建测试用的数据表和数据

可以创建一个示例表和一些测试数据,来检验一下,具体代码如下所示:

   CREATE TABLE testSort (data VARCHAR(255))
  GO
  INSERT INTO testSort VALUES('apple,pear,orange,banana,grape,kiwi')
  INSERT INTO testSort VALUES('pineapple,grape,banana,apple')
  INSERT INTO testSort VALUES('apricot,pear,strawberry,banana')
  INSERT INTO testSort VALUES('cherry,watermelon,orange,melon,grape')

步骤6:测试

如果要测试CLR函数,在步骤4执行后示例表和数据创建完之后,可以运行下面的SELECT语句,分别列出排序前和排序后的数据,两者便于对比。

SELECT data, dbo.sortString(data) as sorted FROM testSort

上述SQL执行后,如图3所示:

SQL Server 2005中使用CLR函数实现字符串排序

图3:排序前和排序后的数据

步骤7:删除CLR函数

如果希望彻底删除CLR函数,您需要将之前创建的VB文件以及编译过程中产生的DLL都删除。

运行下面的T-SQL代码可以删除之前创建的对象。

   DROP FUNCTION dbo.SortString
  GO
  DROP ASSEMBLY CLRFunctions
  GO
  DROP TABLE testSort
  GO

小结

通过宿主.NET Framework 2.0 公共语言运行库 (CLR),SQL Server 2005显著地增强了数据库编程模型。开发人员可以用任何CLR语言(如C#、VB.NET等)来写存储过程、触发器和用户自定义函数,在实现某些功能的时候会比用T-SQL代码效率更高。

上一页  1 2 3 

Tags:SQL Server 使用

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