盾怪网教程:是一个免费提供流行杀毒软件教程、在线学习分享的学习平台!

SQL Call dot net Dll

时间:2024/6/4作者:未知来源:盾怪网教程人气:

[摘要]软件等级:更新时间:2016-11-11版本号:v5.7.10 MySQL Server x64官方正式版免费下载立即下载 SQL Server 2005 中, 直接叫用.NET組件是個...
MySQL Server x64官方正式版免费下载

软件等级:

更新时间:2016-11-11

版本号:v5.7.10

MySQL Server x64官方正式版免费下载

立即下载

 

SQL Server 2005 中, 直接叫用.NET組件是個很特別的功能; 它的使用時點在於當 SQL Program 無法快速有效率的處理我們想做的事, 而且.NET code可以做的比 SQL Program 好時, 我們可以在 SQL Program 中直接叫用 .NET組件中的類別方法, 這些Method必須是static, 這些Method可以被視為Function, Stored Procedure的方式來使用.
以下是一連串的步驟, 說明建立的過程.
1. 標示指定Method
在想要成為CLR Function/Stored Procedure的Static Method上設定Attribute.
   1: using System;
   2: using System.Collections.Generic;
   3: using System.Text;
   4: 
   5: using Microsoft.SqlServer.Server;
   6: 
   7: namespace HowardCLRInSQLSample
   8: {
   9:     public class HelloCLR
  10:     {
  11:         [SqlFunctionAttribute(Name = "FN_Hello")]
  12:         public static string FN_Hello()
  13:         {
  14:             return "Hello, CLR Function In SQL !!";
  15:         }
  16: 
  17:         [SqlProcedureAttribute(Name = "SP_Hello")]
  18:         public static void SP_Hello()
  19:         {
  20:             SqlContext.Pipe.Send("Hello, CLR Stored Procedure In SQL !!");
  21:         }
  22:     }
  23: }
 
2. SQL Server 環境建立
 
 
   1: -- 啟用SQL Server中的 CLR功能 (預設為關閉)
   2: -- 必須擁有 sysadmin 或 serveradmin 的權限才能啟用此功能
   3: sp_configure 'clr enabled', 1
   4: GO
   5: RECONFIGURE
   6: GO
   7: 
   8: -- 同時必須設定指定db - Compatibility level -> 90 (即database為SQL Server 2005)
   9: sp_dbcmptlevel OFD_POLARIS_CUR_EC, 90
 
 
 
3. 註冊組件, 建立CLR Function/Stored Procedure
 
 
   1: -- 登錄組件 HowardCLRInSQLSample.dll
   2: -- 任何登錄之後的任何變動(re-build) 皆需重登錄
   3: IF EXISTS (SELECT [name] FROM sys.assemblies WHERE [name] = N'HowardCLRInSQLSample')
   4: DROP ASSEMBLY HowardCLRInSQLSample;
   5: GO
   6: 
   7: CREATE ASSEMBLY HowardCLRInSQLSample
   8: FROM 'H:\00 IT\Database\SQL Server\SQL 2005\clr in sql server\HowardCLRInSQLSample\HowardCLRInSQLSample\bin\Debug\HowardCLRInSQLSample.dll'
   9: WITH PERMISSION_SET = SAFE;
  10: GO
  11: 
  12: -- 可以用assembly_files來檢視組件的路徑
  13: select * from sys.assembly_files
  14: 
  15: -- 建立clr function
  16: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FN_Hello]'and xtype in (N'FN', N'IF', N'TF', N'FS'))
  17:     drop function [dbo].[FN_Hello]
  18: GO
  19: 
  20: CREATE FUNCTION [dbo].[FN_Hello] ()
  21: Returns  nvarchar(100)
  22: EXTERNAL NAME HowardCLRInSQLSample.[HowardCLRInSQLSample.HelloCLR].FN_Hello
  23: 
  24: 
  25: -- 建立clr sp
 
 
 
Alter Database SF_Maintain SET TRUSTWORTHY ON
 
  TRUSTWORTHY   {   ON  

关键词:SQL Call dot net Dll




Copyright © 2012-2018 盾怪网教程(http://www.dunguai.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版