Sql2008中添加程序集(转)

一、示例演示

1、用C# 建立数据库 CRL 项目

复制代码
public partial class MyClr
{
     [ Microsoft.SqlServer.Server.SqlFunction ]
     public static SqlBoolean CLRFBitContains(string MyBigIntValue,  int Row)
    {
         // 在此处放置代码
         return (new MyBigInt(MyBigIntValue)  & MyBigInt.CreateByBitPositon( Convert.ToUInt32(Row)))  == MyBigInt.Zero;
    }
复制代码

2、数据库初始化

复制代码
exec sp_configure  ' show advanced options '' 1 ';
go
reconfigure;
go
exec sp_configure  ' clr enabled '' 1 '
go
reconfigure;
exec sp_configure  ' show advanced options '' 1 '
 
go
   ALTER  DATABASE  DB_Name  set TRUSTWORTHY  on;
go 
复制代码

3、数据库添加程序集

  create assembly MyClr
from  ' R:\MyApp\MyClr\MyClr\bin\Debug\MyClr.dll '
WITH permission_set  = Safe;

4、数据库添加函数映射

复制代码
create  function ClrFBitContains
@val  as  nvarchar( 4000) ,  @RowIndex  as   int )
returns  bit
as
  external  name MyClr.MyClr.CLRFBitContains  ; 
TestSql:
select dbo.ClrFBitContains( ' F0F ', 11)
复制代码

二、在sqlserver中如果要使用一个程序集一般有如下注意事项 

1、打开sqlserver 的CLR支持,即在Sql Server中执行这段代码可以开启CLR 

复制代码
exec sp_configure  ' show advanced options '' 1 ';
go
reconfigure;
go
exec sp_configure  ' clr enabled '' 1 '
go
reconfigure;
exec sp_configure  ' show advanced options '' 1 '
go
复制代码

2、是否需要访问外部资源,如果需要访问外部资源还需要执行下面的,即打开数据库的TRUSTWORTHY 属性

ALTER  DATABASE  DB_Name  set TRUSTWORTHY  on;

三、在sqlserver中如果要使用一个程序集一般有两种方法

 方法一:通过T-SQL手动将该程序集放入到SQL Server 其步骤如下

1、创建将要使用的程序集.dll

程序上没什么稀奇的,跟普通的ado.net的程序差不多主要就是方法上加了一个属性  (<System.Data.Sql.SqlProcedure(name:="WriteHashedPassword")>)

2、部署程序集到sqlserver

a、打开sqlserver中clr中相关的支持(方法如上)

b、添加程序集到sqlserver

Create assembly SqlServerProject1
     authorization dbo
     from  ' E:\test\dotnet\SqlServerProject1\SqlServerProject1\bin\SqlServerProject1.dll '
     with permission_set =external_access

c、添加存储过程

Create  Procuce  [ dbo ]. [ 存储过程名称 ] 
     @from  [ nvarchar ]( 50),  --  参数列表
     @to  [ nvarchar ]( 50)
     WITH  EXECUTE  AS CALLER
     AS
    EXTERNAL NAME  [ 程序集的名称 ]. [ StoredProcedures ]. [ 存储过程名称 ]

d、执行存储过程

 

exec CLRSPTest  @sql = ' select * from t2 ', @path = ' e:\a\11.txt ' 

 

方法二:通过Visual Studio 2005创建供并部署SQL Server 2005用的Assembly

1、打开Visual Studio 2005新建项目类型为数据库的sqlserver项目

2、创建所需要的存储过程,函数等

3、编译该项目

4、部署该项目(此时我们打开sqlserver相应的数据库可以看到存储过程目录及程序集等目录下有相应创建的对象了)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值