共用方式為


CLR 使用者定義類型

適用於:SQL Server

SQL Server 可讓您建立資料庫對象,這些對像是針對 .NET Framework Common Language Runtime (CLR) 中建立的元件進行程序設計。 可以利用 CLR 所提供的豐富程式設計模型的資料庫物件包括觸發程式、預存程式、函式、聚合函數和類型。

注意

在 SQL Server 中,執行 CLR 程式代碼的能力預設會設定為 OFF。 您可以使用sp_configure系統預存程式來啟用 CLR。

從 SQL Server 2005 (9.x) 開始,您可以使用使用者定義的類型 (UDT) 來擴充伺服器的純量類型系統,以在 SQL Server 資料庫中儲存 CLR 物件。 UDT 可以包含多個元素,而且可以有行為,並將它們與由單一 SQL Server 系統數據類型組成的傳統別名數據類型區別。

因為整個系統都會存取 UDT,因此它們對於複雜數據類型的使用可能會對效能造成負面影響。 複雜數據通常是使用傳統數據列和數據表進行模型化。 SQL Server 中的 UDT 非常適合下列各項:

  • 日期、時間、貨幣和擴充數值類型

  • 地理空間應用程式

  • 編碼或加密的數據

在 SQL Server 中開發 UDT 的程式包含下列步驟:

  1. 撰寫程式代碼並建置定義UDT的元件。 UDT 是使用 the.NET Framework Common Language Runtime (CLR) 所支援的任何語言來定義,以產生可驗證的程序代碼。 這包括 Visual C# 和 Visual Basic .NET。 數據會公開為 .NET Framework 類別或結構的欄位和屬性,而行為是由類別或結構的方法所定義。

  2. 註冊元件。 UDT 可以透過資料庫專案中的 Visual Studio 使用者介面進行部署,或使用 Transact-SQL CREATE ASSEMBLY 語句,將包含類別或結構的元件複製到資料庫中。

  3. 在 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。

  4. 使用UDT 從SQL Server 2005 (9.x)開始建立數據表、變數或參數,用戶定義型別可以做為數據表的數據行定義、Transact-SQL 批次中的變數,或做為 Transact-SQL 函數或預存程式的自變數。

本節內容

建立使用者定義類型
描述如何建立UDT。

在 SQL Server 中註冊用戶定義型別
描述如何在 SQL Server 中註冊和管理 UDT。

在 SQL Server 中使用使用者定義型別
描述如何使用 UDT 建立查詢。

存取 ADO.NET 中的使用者定義型別
描述如何在 ADO.NET 中使用 .NET Framework Data Provider for SQL Server 來處理 UDT。