CLR 使用者定義類型
適用於:SQL Server
SQL Server可讓您針對在 .NET Framework common Language Runtime (CLR) 中建立的元件建立資料庫物件。 資料庫物件可充分運用 CLR 所提供的豐富程式設計模型,包括觸發程序、預存程序、函數、彙總函式和類型等。
注意
執行 CLR 程式碼的能力預設會在 SQL Server 中設定為 OFF。 您可以使用 sp_configure 系統預存程式來啟用 CLR。
從 SQL Server 2005 (9.x) 開始,您可以使用使用者定義的類型 (UDT) 來擴充伺服器的純量類型系統,以便在SQL Server資料庫中儲存 CLR 物件。 UDT 可以包含多個項目並可以具有行為,這使得它有別於由單一 SQL Server 系統資料型別組成的傳統別名資料型別。
因為系統將 UDT 當做一個整體來進行存取,所以它們使用的複雜資料類型可能會對效能產生負面影響。 通常使用傳統資料列及資料表可以對複雜資料進行最佳模型化。 SQL Server中的 UDT 非常適合下列各項:
日期、時間、貨幣及擴充的數值類型
Geospatial 應用程式
編碼或加密的資料
在 SQL Server 中開發 UDT 的套裝程式含下列步驟:
編寫和建立定義 UDT 的組件。 UDT 是使用會產生可驗證程式碼之 .NET Framework Common Language Runtime (CLR) 支援的任何語言所定義。 這包括 Visual C# 和 Visual Basic .NET。 資料會公開為 .NET Framework 類別或結構的欄位及屬性,並且其行為是由類別或結構的方法所定義。
註冊組件。 UDT 可以透過資料庫專案中的 Visual Studio 使用者介面部署,或使用 Transact-SQL CREATE ASSEMBLY 語句,將包含類別或結構的元件複製到資料庫中。
在 SQL Server 中建立 UDT。 將元件載入主機資料庫之後,您可以使用 Transact-SQL CREATE TYPE 語句來建立 UDT,並將類別或結構的成員公開為 UDT 的成員。 UDT 僅存在於單一資料庫的內容中,並且一旦註冊後,就不再與建立它們的外部檔案具有相依性。
注意
SQL Server 2005 (9.x) 之前,不支援從.NET Framework元件建立的 UDT。 不過,您仍然可以使用 sp_addtype來使用SQL Server別名資料類型。 CREATE TYPE 語法可用來建立原生SQL Server使用者定義資料類型和 UDT。
使用 UDT 建立資料表、變數或參數從 2005 SQL Server 2005 (9.x) 開始,使用者定義型別可以做為資料表的資料行定義、Transact-SQL 批次中的變數,或是 Transact-SQL 函數或預存程式的引數。
本節內容
建立User-Defined類型
描述如何建立 UDT。
在 SQL Server 中註冊使用者定義型別
說明如何在 SQL Server 中註冊及管理 UDT。
在 SQL Server 中使用使用者定義型別
描述如何使用 UDT 建立查詢。
存取 ADO.NET 中的使用者定義型別
描述如何在 ADO.NET 中使用 .NET Framework Data Provider for SQL Server 使用 UDT。
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: