SqlServer2005 CLR 编程初探

 

研究了半天的SqlServer2005 CLR 编程。
主要参考了来自http://www.sqldbatips.com/showarticle.asp?ID=22的文章《Introducing CLR Stored Procedures in SQL Server 2005》。
归纳一下步骤:
1、用C#或其他高级语言编写一个类,在命令行下编译生成支持Sql Server的dll。
2、在SQL中执行create assembly命令生成组件。
3、创建存储过程调用组件。
4、执行存储过程显示结果。


C#代码如下:
using System;
using Microsoft.SqlServer.Server;
using System.Data.SqlTypes;



    public class TestClass
    {   


        public static void HelloWorld()
        {
            //Here we get get a handle to the client output buffer
            SqlPipe sqlP = SqlContext.Pipe;
            //And simply send back a string
            sqlP.Send("Hello World from SQLCLR !!");  
        }
    }
 
编译C#的命令:(注意不能换行)
csc /target:library e:/TestClass.cs /r:"D:/Program Files/Microsoft SQL Server/MSSQL.1/MSSQL/Binn/sqlaccess.dll"


创建assembly的命令:
create assembly Hello  from 'e:/TestClass.dll'
with permission_set = safe


创建stored procedure的命令:
create procedure Hello
as external name Hello.TestClass.HelloWorld



在学习的过程中遇到两个问题:
1、System.Data.SqlServer  VS Microsoft.SqlServer.Server
参考的文章中使用的是System.Data.SqlServer,后来查资料才发现这个命名空间已更换为Microsoft.SqlServer.Server
细看那篇文章是发布于2004年的,可能不是正式版的Sql Server2005。
2、执行exec Hello时报错:“Execution of user code in the .NET Framework is disabled. Enable "clr enabled" configuration


option.”
因为sql默认是clr关闭状态。也不知道在哪去设置,所幸的是可以用命令啊:
sp_configure 'clr enabled', 1
go
reconfigure
go


至此,再执行exec Hello时,顺利输出Hello World from SQLCLR !!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值