SQL Server 2005中创建CLR存储过程
2008-02-26 14:10
在2005之前的版本创建存储过程都是在数据库里面写Transact-SQL语言实现的,不过现在SQL Server 2005支持用其他面向对象的语言编写CLR存储过程了,关于这样做的好处,官方有很多解释了,这里就直接说明实现方法了。
http://hi.baidu.com/grrc/blog/item/facce880871528df9123d98c.html假设服务器里面有个test数据库,数据库有个架构user,还有一个表test1,然后有个sql登陆用户叫test_user,将这个用户设置成VS2005里面数据库连接的登陆用户。 在VS2005中创建一个项目,类别是SQL Server数据库项目,然后往项目里面添加一个存储过程。接着在该文件里面编写如下存储过程代码: using System.Data.SqlClient; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; public partial class StoredProcedures { [Microsoft.SqlServer.Server.SqlProcedure] public static void SelectAll() { using (SqlConnection connection = new SqlConnection("context connection=true")) { connection.Open(); SqlCommand command = new SqlCommand("SELECT * FROM [user].test1", connection); SqlContext.Pipe.ExecuteAndSend(command); } } }; 将上面代码保存,命名为testProcedure.cs文件。接着有2中方法想数据库里面添加这个存储过程。 1. 打开.NET的命令行工具,然后将testProcedure.cs编译成dll程序集testProcedure.dll csc /t:library /out:testProcedure.dll testProcedure.cs 这可能是由于:
也就是说那个test_user必须是sysadmin角色才行。 |