婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 在SQL Server中使用CLR調用.NET方法實現思路

在SQL Server中使用CLR調用.NET方法實現思路

熱門標簽:蘋果手機凱立德地圖標注 合肥電銷外呼系統哪家公司做的好 南陽外呼系統定制化 百度ai地圖標注 同安公安400電話怎么申請流程 電話機器人軟件銷售工作 預測式外呼系統使用說明 玉林市機器人外呼系統哪家好 申請400電話手續
介紹
我們一起來做個示例,在.NET中新建一個類,并在這個類里新建一個方法,然后在SQL Server中調用這個方法。按照微軟所述,通過宿主 Microsoft .NET Framework 2.0 公共語言運行庫 (CLR),SQL Server 2005顯著地增強了數據庫編程模型。 這使得開發人員可以用任何CLR語言(如C#、VB.NET或C++等)來寫存儲過程、觸發器和用戶自定義函數。

我們如何實現這些功能呢
為了使用CLR,我們需要做如下幾步:
1、在.NET中新建一個類,并在這個類里新建一個public方法。
2、編譯這個類為一個DLL。
3、在SQL Server中注冊這個DLL。
4、新建一個SQL Server函數來訪問指定的.NET方法。

接下來,我們一起來完成一個示例
首先,在Visual Studio中新建一個名為“SQLServerCLRTest”的類庫項目。 然后,新建一個名為“CLRFunctions”的類,并在其內添加一個名為“HelloWold”的方法,代碼如下:
復制代碼 代碼如下:

public class CLRFunctions
{
public static string HelloWorld(string Name)
{
return ("Hello " + Name);
}
}

這是一個非常簡單的方法(為了讓SQL Server可以調用它,它必須要是public和static的),這個方法有一個string類型的參數,返回信息為“Hello”加上你傳入的參數。

現在,我們需要編譯這個項目為一個DLL,并在SQL Server中注冊它。 這也是比較簡單的,在VS中右鍵單擊項目,選擇“生成”后程序就會生成一個DLL。 如果你的項目是調試模式的話,那么就可以在如下所示那樣的路徑里找到編譯好的DLL。
復制代碼 代碼如下:

C:\Documents and Settings\mark.smith\My Documents\Visual Studio 2005\Projects\SQLServerCLRTest\SQLServerCLRTest\bin\Debug\SQLServerCLRTest.dll

找到這個DLL后,我們就可以把它拷貝到我們的SQL Server機器上了,如果是相同機器的話我們只要記住這個路徑即可。

啟用CLR功能
默認情況下,SQL Server中的CLR是關閉的,所以我們需要執行如下命令打開CLR:
復制代碼 代碼如下:

exec sp_configure 'clr enabled',1
reconfigure
go

注冊DLL
為了調用我們寫的那個方法,需要在SQL Server中注冊我們剛剛編譯好的那個DLL。 我們可以在數據庫中使用如下命令來注冊DLL(路徑為你的DLL文件的路徑)
復制代碼 代碼如下:

CREATE ASSEMBLY asmHelloWorld FROM 'C:\SQLServerCLRTest.dll'

在SQL Server中調用我們的.NET方法
為了調用.NET方法,我們可以寫一個SQL Server自定義函數,并在其內使用“EXTERNAL NAME”來通知SQL Server使用CLR功能。 代碼如下:
復制代碼 代碼如下:

CREATE FUNCTION dbo.clrHelloWorld
(
@name as nvarchar(200)
)
RETURNS nvarchar(200)
AS EXTERNAL NAME asmHelloWorld.[SQLServerCLRTest.CLRFunctions].HelloWorld

上面的自定義函數做了兩項工作。 首先是聲明了一個nvarchar參數,它等同于.NET里的string類型(如果將其設置為varchar并且后面使用了“EXTERNAL NAME”的話就會報錯)。然后使用“EXTERNAL NAME”來調用.NET方法。 語法如下:
程序集名.類名.方法名
但是,當我使用這個語法調用.NET方法的時候,SQL Server就會報錯,所以為了讓它正常工作,我使用了如下語法:
程序集名.[類名].方法名
現在我們就可以通過如下語句調用.NET方法了:
復制代碼 代碼如下:

SELECT dbo.clrHelloWorld('Mark')

當你運行這段代碼的時候,就會得到一個返回結果“Hello Mark”。
我們通過一個很簡單的示例演示了如何實現SQL Server的CLR,它可以給我們帶來很多非常有用的幫助。

標簽:嘉興 南昌 淄博 南京 臺州 海南 揚州 南京

巨人網絡通訊聲明:本文標題《在SQL Server中使用CLR調用.NET方法實現思路》,本文關鍵詞  在,SQL,Server,中,使用,CLR,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在SQL Server中使用CLR調用.NET方法實現思路》相關的同類信息!
  • 本頁收集關于在SQL Server中使用CLR調用.NET方法實現思路的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 鹤庆县| 巴楚县| 玉树县| 凌云县| 沂水县| 卓资县| 石柱| 通州市| 托里县| 麻江县| 淳安县| 迁西县| 平远县| 阿鲁科尔沁旗| 南汇区| 都匀市| 惠水县| 乌恰县| 衢州市| 登封市| 老河口市| 湖南省| 休宁县| 宜宾市| 通山县| 永福县| 兴安盟| 临沧市| 图们市| 苍山县| 白玉县| 项城市| 玉田县| 治县。| 凤翔县| 建宁县| 广元市| 慈利县| 闽清县| 卢湾区| 盈江县|