> 데이터 베이스 > MySQL 튜토리얼 > Sql2008中添加程序集.

Sql2008中添加程序集.

WBOY
풀어 주다: 2016-06-07 15:13:26
원래의
1135명이 탐색했습니다.

C# 建立数据库 CRL 项目 .Net 3.5 public partial class MyClr{ [Microsoft.SqlServer.Server.SqlFunction] public static SqlBoolean CLRFBitContains(string MyBigIntValue, int Row) { // 在此处放置代码 return (new MyBigInt(MyBigIntValue) MyBigInt.C

C# 建立数据库 CRL 项目  .Net 3.5

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;
    }
}
로그인 후 복사

  数据库初始化:

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
로그인 후 복사

  数据库添加程序集:

create assembly MyClr
from 'R:\MyApp\MyClr\MyClr\bin\Debug\MyClr.dll'
WITH permission_set = Safe;
로그인 후 복사

  数据库添加函数映射

create function ClrFBitContains
( @val as nvarchar(4000) , @RowIndex as  int )
returns bit
as 
  external  name MyClr.MyClr.CLRFBitContains  ;
로그인 후 복사

  

TestSql:

 select dbo.ClrFBitContains('F0F',11)

======================================================

原文很丑: http://www.ej38.com/showinfo/sqlserver-140374.html

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

一:打开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

 

二:是否需要访问外部资源,如果需要访问外部资源还需要执行下面的

  --打开数据库的TRUSTWORTHY 属性
  ALTER DATABASE DB_Name set TRUSTWORTHY on;

 

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

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

一:创建将要使用的程序集.dll

   程序上没什么稀奇的,跟普通的ado.net的程序差不多主要就是方法上加了一个属性  ()

二:部署程序集到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
                              go
                

  c添加存储过程

--添加存储过程
CREATE PROCEDURE [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

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

                      二:创建所需要的存储过程,函数等

                      三:编译该项目

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿