CLR 使用者定義型別
SQL Server 提供的功能可讓您建立針對 .NET Framework Common Language Runtime (CLR) 中建立的組件來進行程式設計的資料庫物件。資料庫物件可充分運用 CLR 所提供的豐富程式設計模型,包括觸發程序、預存程序、函數、彙總函式和類型等。
[!附註]
在 SQL Server 中,執行 CLR 程式碼的功能預設會設定為 OFF。可以使用 sp_configure 系統預存程序來啟用 CLR。
從 SQL Server 2005 開始,您可以使用使用者定義型別 (UDT) 來擴充伺服器的純量類型系統,好讓 CLR 物件儲存在 SQL Server 資料庫中。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 之前,不支援從 .NET Framework 組件建立的 UDT。但是,您仍然可以利用 sp_addtype,在 SQL Server 2005 和更新版本中使用 SQL Server 別名資料類型。CREATE TYPE 語法可用來建立原生 SQL Server 使用者定義資料類型及 UDT。
使用 UDT 建立資料表、變數或參數:從 SQL Server 2005 開始,使用者定義型別可以做為資料表的資料行定義、Transact-SQL 批次中的變數,或是 Transact-SQL 函數或預存程序的引數。如需詳細資訊,請參閱<使用 CLR 使用者定義型別>。
本章節內容
建立使用者定義型別
描述如何建立 UDT。在 SQL Server 中註冊使用者定義型別
描述如何在 SQL Server 中註冊及管理 UDT。使用 SQL Server 中的使用者定義型別
描述如何使用 UDT 建立查詢。存取 ADO.NET 中的使用者定義型別
描述如何在 ADO.NET 中,使用 .NET Framework Data Provider for SQL Server 來處理 UDT。