HOW TO:針對使用 SQL Server Common Language Run-time 整合的資料庫物件建立專案

Visual Studio 中的 SQL Server 專案有助於使用 .NET Framework 語言 (例如 Visual Basic 和 Visual C#),建立預存程序、觸發程序、彙總、使用者定義函式和使用者定義型別。SQL Server 專案需要有 SQL Server 2005 或 SQL Server 更新版本的參考。 這些物件通常稱為 SQL Server Common Language Runtime 物件或 SQL CLR 物件。

重要事項重要事項

如果您想要針對 SQL Server 2005 或 SQL Server 2008 開發 SQL CLR 組件,必須在開發電腦上安裝 .NET Framework 3.5 版。 SQL Server 2005 和 SQL Server 2008 要求 SQL CLR 組件以 .NET Framework 2.0、3.0 或 3.5 版為目標。 您可以從 Microsoft 網站安裝 Microsoft .NET Framework 3.5

建立 SQL CLR 資料庫專案之後,請建立要部署至 SQL Server 的資料庫物件。 下表將提供說明主題的連結,以說明如何建立可用的資料庫物件:

資料庫物件

資訊

預存程序

HOW TO:使用 Common Language Run-time 整合建立和執行 SQL Server 預存程序

觸發程序

HOW TO:使用 Common Language Run-time 整合建立和執行 SQL Server 觸發程序

Aggregate

HOW TO:使用 Common Language Run-time 整合建立和執行 SQL Server 彙總

使用者定義函式

HOW TO:使用 Common Language Run-time 整合建立和執行 SQL Server 使用者定義函式

使用者定義型別

HOW TO:使用 Common Language Run-time 整合建立和執行 SQL Server 使用者定義型別

注意事項注意事項

根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。 若要變更設定,請從 [工具] 功能表中選取 [匯入和匯出設定]。 如需詳細資訊,請參閱使用設定

建立新專案

若要建立新的 SQL Server 專案

  1. 在 [檔案] 功能表中,指向 [新增],然後按一下 [專案]。

  2. 展開 [已安裝的範本] 底下的 [資料庫] 節點,然後按一下 [SQL Server]。

  3. 在範本清單中,按一下您要建立之專案類型的對應圖示。 例如,若要建立使用 Visual C# 的 SQL CLR 專案,請按一下 [Visual C# SQL CLR 資料庫專案]。

  4. 在目標 Framework 清單 (位於範本清單上方) 中,按一下對應於 SQL CLR 資料庫專案部署之目標 SQL Server 版本的 .NET Framework 版本。

    重要事項重要事項

    SQL Server 2005 和 SQL Server 2008 僅支援使用 .NET Framework 2.0、3.0 或 3.5 版所建置的 SQL Server 專案。 如果您嘗試部署SQL Server專案,SQL Server 2005或SQL Server 2008,將顯示錯誤消息:Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(在進行校驗是您要部署的程式集的名稱)。

  5. 在 [名稱] 中,指定要用於專案的名稱。

  6. 按一下 [確定]。

設定 SQL Server 專案

建立 SQL Server 專案之後,可能要修改數個專案屬性,才能成功部署專案。

若要設定 SQL Server 專案的屬性

  1. 在 [方案總管] 中,選取您要設定屬性的專案。

  2. 在 [專案] 功能表中,按一下 [ProjectName 屬性],其中 ProjectName 是您提供給 SQL Server 專案的名稱。

  3. 在 [應用程式] 索引標籤的 [組件名稱] 中,指定要提供給從 SQL Server 專案建置之組件的名稱。

  4. 如果您已經指定 SQL CLR 資料庫專案部署目標 SQL Server 版本所支援的 .NET Framework 版本,可以跳至步驟 10。

  5. 如果您使用 Visual Basic,請跳至步驟 7。

  6. 在 [應用程式] 索引標籤的 [目標 Framework] 中,按一下對應於 SQL CLR 資料庫專案部署之目標 SQL Server 版本的 .NET Framework 版本。

    重要事項重要事項

    SQL Server 2005 和 SQL Server 2008 僅支援使用 .NET Framework 2.0、3.0 或 3.5 版所建置的 SQL Server 專案。 如果您嘗試部署SQL Server專案,SQL Server 2005或SQL Server 2008,將顯示錯誤消息:Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(在進行校驗是您要部署的程式集的名稱)。

  7. 跳至步驟 10 (只有在使用 Visual Basic 時才適用步驟 7、8 和 9)。

  8. 按一下 [編譯] 索引標籤上的 [進階編譯選項]。

  9. 在 [進階編譯器設定] 對話方塊的 [目標 Framework] 中,按一下對應於 SQL CLR 資料庫專案部署之目標 SQL Server 版本的 .NET Framework 版本。

    重要事項重要事項

    SQL Server 2005 和 SQL Server 2008 僅支援使用 .NET Framework 2.0、3.0 或 3.5 版所建置的 SQL Server 專案。 如果您嘗試部署SQL Server專案,SQL Server 2005或SQL Server 2008,將顯示錯誤消息:Deploy error (SQL01268): .NET SqlClient Data Provider: Msg 6218, Level 16, State 3, Line 1 CREATE ASSEMBLY for assembly 'AssemblyName' failed because assembly 'AssemblyName' failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database(在進行校驗是您要部署的程式集的名稱)。

  10. 按一下 [確定]。

  11. 在 [資料庫] 索引標籤的 [組件擁有人] 中,輸入組件擁有人的使用者或角色名稱。

    重要事項重要事項

    這個值必須是在目前使用者為成員時的角色名稱,或者目前使用者必須擁有 IMPERSONATE 使用權限。 如果您沒有指定組件擁有人,則擁有權會提供給目前的使用者。 這個設定對應於 SQL Server CREATE ASSEMBLY 陳述式的 AUTHORIZATION owner_name 引數。 如需詳細資訊,請參閱 Microsoft 網站上的 CREATE ASSEMBLY (Transact-SQL)

  12. 在 [檔案] 功能表上,按一下 [全部儲存]。

    如果您想要建立會使用 XML 序列化的 SQL CLR 物件,請執行<建立會使用 XML 序列化的 SQL CLR 物件>所述的下列額外步驟。

建立會使用 XML 序列化的 SQL CLR 物件

如果您要建立 Web 服務,可以將組建屬性中的 [產生序列化組件] 選項設為 'On'。 然而,當您部署包含 SQL CLR 物件的組件時,目標伺服器上不會建立 XML 序列化組件。 您必須將陳述式加入至 PostDeployScript.sql 指令碼,才能建立該組件。

注意事項注意事項

如果您要建立 Web 服務,必須將您的權限設為 External_Access 或 Unsafe,而且目標資料庫必須將 [可信任] 設定設為 On。

若要為 SQL CLR 組件建立 XMLSerializer 組件

  1. 在 [方案總管] 中,展開您要部署的 SQL CLR 專案,然後按兩下 PostDeployScript.sql 指令碼。

  2. 在程式碼編輯器中,將下列 Transact-SQL 陳述式加入至該指令碼:

    CREATE ASSEMBLY SqlClassLibraryXML from 'path\assemblyname.XmlSerializers.dll' 
    

    其中 SqlClassLibraryXML 是您要提供給組件的名稱,path 是序列化程式組件的路徑,而 assemblyname.XmlSerializers.dll 則是序列化程式組件的名稱。

  3. 按一下 [檔案] 功能表上的 [儲存 PostDeployScript.dll]。

連接到 SQL Server 資料庫

SQL CLR 資料庫專案需要連接到執行於 SQL Server 2005 (含) 以後版本的資料庫。 如果 [伺服器總管] 中有 SQL Server 2005 資料庫的連接,則 [加入資料庫參考] 對話方塊中會加以列出。 如果您想要使用資料庫專案 (.dbproj),部署從 SQL Server 專案所建置的組件,則不需要指定資料庫連接,可以按一下 [連接] 對話方塊中的 [取消]。 如需詳細資訊,請參閱開始以小組開發參考 SQLCLR 物件的資料庫

若要連接到 SQL Server 資料庫

請參閱

工作

逐步解說:使用 Managed 程式碼建立預存程序

HOW TO:偵錯 SQL CLR 預存程序

參考

SQL CLR 資料庫專案和資料庫物件的屬性

概念

SQL Server CLR 整合簡介 (ADO.NET)

使用 Managed 程式碼建立資料庫物件的好處

以 Managed 程式碼建立 SQL Server 物件