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

深入.NET核心 CLR函數(shù)使用舉例

開發(fā) 后端 SQL Server
可以在 SQL Server 實(shí)例中創(chuàng)建可在 Microsoft .NET Framework 公共語(yǔ)言運(yùn)行時(shí) (CLR) 中創(chuàng)建的程序集中進(jìn)行編程的數(shù)據(jù)庫(kù)對(duì)象。可以充分利用公共語(yǔ)言運(yùn)行時(shí)所提供的豐富的編程模式的數(shù)據(jù)庫(kù)對(duì)象包括聚合函數(shù)、函數(shù)、存儲(chǔ)過(guò)程、觸發(fā)器以及類型。

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

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

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

注意:

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

注意:

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

訪問(wèn)外部資源

可以使用 CLR 函數(shù)訪問(wèn)外部資源,例如文件、網(wǎng)絡(luò)資源、Web 服務(wù)及其他數(shù)據(jù)庫(kù)(包括 SQL Server 遠(yuǎn)程實(shí)例)。這可以通過(guò)使用 .NET Framework 中的各種類(例如 System.IO、System.WebServices 及 System.Sql 等)來(lái)實(shí)現(xiàn)。至少應(yīng)將包含此類函數(shù)的程序集配置為設(shè)置了 EXTERNAL_ACCESS 權(quán)限,才能實(shí)現(xiàn)此目的??梢允褂?SQL 客戶端托管訪問(wèn)接口訪問(wèn) SQL Server 遠(yuǎn)程實(shí)例。但在 CLR 函數(shù)中不支持與發(fā)起服務(wù)器的環(huán)回連接。

示例如下:

***步:

 

第二步:

public class Class1
{
    public static string MySplit(int filedIndex, string filedName)
    {
        //filedIndex從1開始
        try
        {
            if (filedIndex == null || filedIndex <= 0 || filedName == null || filedName == "")
            {
                return "";
            }
            else
            {
                return filedName.Split('|')[filedIndex - 1].Trim();
            }

        }
        catch
        {
            return "";
        }
    }
}

//得到程序集 ClassLibrary1.dll

第三步:

CREATE ASSEMBLY Class1
AUTHORIZATION [dbo]
FROM 'C:\ClassLibrary1.dll'
WITH PERMISSION_SET = SAFE

第四步:

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

第五步(測(cè)試):

select dbo.MySplit(2,name) from mytesttable

以上測(cè)試通過(guò)!

【編輯推薦】

  1. 探秘CLR 4.0中的代碼契約
  2. Visual Studio中的SQL Server CLR代碼調(diào)試
  3. SQL Server 2005中的CLR集成
責(zé)任編輯:book05 來(lái)源: Sina博客
相關(guān)推薦

2009-09-18 11:13:09

.Net CLR

2009-08-24 11:36:27

CLR加載過(guò)程

2009-09-18 13:05:59

.NET CLR

2009-07-24 09:24:31

Java終止函數(shù)

2009-10-13 17:08:10

CLR VB.NET

2009-10-22 16:08:52

.NET CLR是什么

2009-10-20 09:28:18

VB.NET Prin

2009-09-18 11:29:23

.NET CLR

2009-10-22 17:39:34

CLR內(nèi)存管理

2014-11-17 09:40:28

.NET

2009-09-18 09:02:45

CLR Via C#

2009-10-19 14:25:16

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

2009-10-12 16:51:28

VB.NET使用Ora

2010-07-13 10:13:35

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

2009-04-14 09:35:33

.NETCLR術(shù)語(yǔ)

2009-10-22 11:25:08

CLR函數(shù)壓縮

2009-09-25 09:36:55

Hibernate核心

2010-07-06 15:54:30

VB.NET UDP

2023-10-31 11:46:32

編譯器托管CLR

2021-04-28 10:13:58

zookeeperZNode核心原理
點(diǎn)贊
收藏

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