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 的資料庫物件。 下表將提供說明主題的連結,以說明如何建立可用的資料庫物件:
資料庫物件 |
資訊 |
---|---|
預存程序 |
|
觸發程序 |
|
Aggregate |
|
使用者定義函式 |
HOW TO:使用 Common Language Run-time 整合建立和執行 SQL Server 使用者定義函式 |
使用者定義型別 |
HOW TO:使用 Common Language Run-time 整合建立和執行 SQL Server 使用者定義型別 |
注意事項 |
---|
根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。 若要變更設定,請從 [工具] 功能表中選取 [匯入和匯出設定]。 如需詳細資訊,請參閱使用設定。 |
建立新專案
若要建立新的 SQL Server 專案
在 [檔案] 功能表中,指向 [新增],然後按一下 [專案]。
展開 [已安裝的範本] 底下的 [資料庫] 節點,然後按一下 [SQL Server]。
在範本清單中,按一下您要建立之專案類型的對應圖示。 例如,若要建立使用 Visual C# 的 SQL CLR 專案,請按一下 [Visual C# SQL CLR 資料庫專案]。
在目標 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(在進行校驗是您要部署的程式集的名稱)。
在 [名稱] 中,指定要用於專案的名稱。
按一下 [確定]。
設定 SQL Server 專案
建立 SQL Server 專案之後,可能要修改數個專案屬性,才能成功部署專案。
若要設定 SQL Server 專案的屬性
在 [方案總管] 中,選取您要設定屬性的專案。
在 [專案] 功能表中,按一下 [ProjectName 屬性],其中 ProjectName 是您提供給 SQL Server 專案的名稱。
在 [應用程式] 索引標籤的 [組件名稱] 中,指定要提供給從 SQL Server 專案建置之組件的名稱。
如果您已經指定 SQL CLR 資料庫專案部署目標 SQL Server 版本所支援的 .NET Framework 版本,可以跳至步驟 10。
如果您使用 Visual Basic,請跳至步驟 7。
在 [應用程式] 索引標籤的 [目標 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 (只有在使用 Visual Basic 時才適用步驟 7、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(在進行校驗是您要部署的程式集的名稱)。
按一下 [確定]。
在 [資料庫] 索引標籤的 [組件擁有人] 中,輸入組件擁有人的使用者或角色名稱。
重要事項 這個值必須是在目前使用者為成員時的角色名稱,或者目前使用者必須擁有 IMPERSONATE 使用權限。 如果您沒有指定組件擁有人,則擁有權會提供給目前的使用者。 這個設定對應於 SQL Server CREATE ASSEMBLY 陳述式的 AUTHORIZATION owner_name 引數。 如需詳細資訊,請參閱 Microsoft 網站上的 CREATE ASSEMBLY (Transact-SQL)。
在 [檔案] 功能表上,按一下 [全部儲存]。
如果您想要建立會使用 XML 序列化的 SQL CLR 物件,請執行<建立會使用 XML 序列化的 SQL CLR 物件>所述的下列額外步驟。
建立會使用 XML 序列化的 SQL CLR 物件
如果您要建立 Web 服務,可以將組建屬性中的 [產生序列化組件] 選項設為 'On'。 然而,當您部署包含 SQL CLR 物件的組件時,目標伺服器上不會建立 XML 序列化組件。 您必須將陳述式加入至 PostDeployScript.sql 指令碼,才能建立該組件。
注意事項 |
---|
如果您要建立 Web 服務,必須將您的權限設為 External_Access 或 Unsafe,而且目標資料庫必須將 [可信任] 設定設為 On。 |
若要為 SQL CLR 組件建立 XMLSerializer 組件
在 [方案總管] 中,展開您要部署的 SQL CLR 專案,然後按兩下 PostDeployScript.sql 指令碼。
在程式碼編輯器中,將下列 Transact-SQL 陳述式加入至該指令碼:
CREATE ASSEMBLY SqlClassLibraryXML from 'path\assemblyname.XmlSerializers.dll'
其中 SqlClassLibraryXML 是您要提供給組件的名稱,path 是序列化程式組件的路徑,而 assemblyname.XmlSerializers.dll 則是序列化程式組件的名稱。
按一下 [檔案] 功能表上的 [儲存 PostDeployScript.dll]。
連接到 SQL Server 資料庫
SQL CLR 資料庫專案需要連接到執行於 SQL Server 2005 (含) 以後版本的資料庫。 如果 [伺服器總管] 中有 SQL Server 2005 資料庫的連接,則 [加入資料庫參考] 對話方塊中會加以列出。 如果您想要使用資料庫專案 (.dbproj),部署從 SQL Server 專案所建置的組件,則不需要指定資料庫連接,可以按一下 [連接] 對話方塊中的 [取消]。 如需詳細資訊,請參閱開始以小組開發參考 SQLCLR 物件的資料庫。
若要連接到 SQL Server 資料庫
完成 [新增/修改連接] 對話方塊,即可連接到 SQL Server 2005 或 SQL Server 2008 資料庫。 如需詳細資訊,請參閱新增/修改連接 (Microsoft SQL Server)。
-或-
在 [加入資料庫參考] 對話方塊中,選取現有的資料庫連接,以便用於 SQL Server 專案。 如需詳細資訊,請參閱加入資料庫參考對話方塊。