自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入解析.Net CLR函數(shù)使用舉例

開發(fā) 后端
在Microsoft Visual Studio 中部署 SQL Server 項(xiàng)目將在為該項(xiàng)目指定的數(shù)據(jù)庫中注冊程序集。部署項(xiàng)目時(shí),還會在數(shù)據(jù)庫中為使用 SqlFunction 屬性注釋的所有方法創(chuàng)建.Net CLR函數(shù)。

本文介紹.Net CLR,其中講解了在SQL Server 中創(chuàng)建.Net CLR函數(shù)的幾個(gè)步驟,還有具體的實(shí)例等等。

可以在SQL Server 實(shí)例中創(chuàng)建可在 Microsoft .NET Framework 公共語言運(yùn)行時(shí) (CLR) 中創(chuàng)建的程序集中進(jìn)行編程的數(shù)據(jù)庫對象??梢猿浞掷霉舱Z言運(yùn)行時(shí)所提供的豐富的編程模式的數(shù)據(jù)庫對象包括聚合函數(shù)、函數(shù)、存儲過程、觸發(fā)器以及類型。

在SQL Server 中創(chuàng)建.Net CLR函數(shù)分為下列幾個(gè)步驟:

使用 .NET Framework 支持的語言將函數(shù)定義為類的靜態(tài)方法。然后,使用適當(dāng)?shù)恼Z言編譯器編譯該類,在 .NET Framework 中生成程序集。使用 CREATE ASSEMBLY 語句在 SQL Server 中注冊程序集。通過使用 CREATE FUNCTION 語句創(chuàng)建引用注冊程序集的函數(shù)。

注意:

在Microsoft Visual Studio 中部署 SQL Server 項(xiàng)目將在為該項(xiàng)目指定的數(shù)據(jù)庫中注冊程序集。部署項(xiàng)目時(shí),還會在數(shù)據(jù)庫中為使用 SqlFunction 屬性注釋的所有方法創(chuàng)建.Net CLR函數(shù)。

注意:

默認(rèn)情況下,關(guān)閉 SQL Server 執(zhí)行.Net CLR代碼的功能。您可以創(chuàng)建、更改和刪除引用托管代碼模塊的數(shù)據(jù)庫對象,但是除非通過使用 sp_configure (Transact-SQL) 啟用了 clr enabled 選項(xiàng),否則這些引用將不會在 SQL Server 中執(zhí)行。

訪問外部資源

可以使用.Net CLR函數(shù)訪問外部資源,例如文件、網(wǎng)絡(luò)資源、Web 服務(wù)及其他數(shù)據(jù)庫(包括 SQL Server 遠(yuǎn)程實(shí)例)。這可以通過使用 .NET Framework 中的各種類(例如 System.IO、System.WebServices 及 System.Sql 等)來實(shí)現(xiàn)。

至少應(yīng)將包含此類函數(shù)的程序集配置為設(shè)置了 EXTERNAL_ACCESS 權(quán)限,才能實(shí)現(xiàn)此目的。可以使用 SQL 客戶端托管訪問接口訪問 SQL Server 遠(yuǎn)程實(shí)例。但在.Net CLR函數(shù)中不支持與發(fā)起服務(wù)器的環(huán)回連接。

示例如下:

.Net CLR第一步:

.Net CLR第一步
.Net CLR第一步

.Net CLR第二步:

  1. public class Class1  
  2. {  
  3. public static string MySplit(int filedIndex, string filedName)  
  4. {  
  5. //filedIndex從1開始  
  6. try  
  7. {  
  8. if (filedIndex == null || filedIndex <= 0 || filedName == null || 
  9. filedName == "")  
  10. {  
  11. return "";  
  12. }  
  13. else  
  14. {  
  15. return filedName.Split('|')[filedIndex - 1].Trim();  
  16. }  
  17.         }  
  18. catch  
  19. {  
  20. return "";  
  21. }  
  22. }  
  23. }  
  24. //得到程序集 ClassLibrary1.dll 

.Net CLR第三步:

  1. CREATE ASSEMBLY Class1AUTHORIZATION [dbo]FROM 
  2. 'C:\ClassLibrary1.dll'WITH PERMISSION_SET = SAFE  

.Net CLR第四步:

  1. CREATE FUNCTION dbo.MySplit(@filedIndex AS INT,@filedName AS
  2.  NVARCHAR(255))RETURNS NVARCHAR(255)ASEXTERNAL NAME Class1.Class1.MySplit  

.Net CLR第五步(測試):

  1. select dbo.MySplit(2,name) from mytesttable 

.Net CLR測試通過!

【編輯推薦】

  1. 淺析C#數(shù)組操作方法
  2. C#數(shù)組操作全面分析
  3. C#數(shù)組和串操作經(jīng)驗(yàn)總結(jié)
  4. 為你解疑:CLR是什么?
  5. 分析與對比CLR Via C#靜態(tài)構(gòu)造函數(shù)的性能
責(zé)任編輯:阡陌 來源: 51CTO
相關(guān)推薦

2009-03-17 16:29:53

SQL ServerCLR.NET Framew

2009-10-20 09:28:18

VB.NET Prin

2010-07-13 10:13:35

Perl內(nèi)部函數(shù)

2009-08-24 11:36:27

CLR加載過程

2009-09-18 13:05:59

.NET CLR

2009-10-13 17:08:10

CLR VB.NET

2009-10-22 16:08:52

.NET CLR是什么

2009-10-14 14:19:00

VB.NET創(chuàng)建表示層

2009-11-02 14:55:52

VB.NET Obje

2009-09-18 11:29:23

.NET CLR

2009-10-22 17:39:34

CLR內(nèi)存管理

2024-09-06 07:29:05

2009-10-29 10:57:28

ADO.NET Dat

2009-09-18 09:02:45

CLR Via C#

2009-10-19 14:25:16

靜態(tài)構(gòu)造函數(shù)

2025-03-06 02:00:00

.NETGrafana工具

2024-04-07 09:04:18

Parallel 類編程工具.NET

2009-10-12 16:51:28

VB.NET使用Ora

2010-07-21 10:18:41

Perl map函數(shù)

2009-09-18 09:35:36

C# CLR
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號