共用方式為


CLR 使用者定義型別

適用於:SQL Server

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

注意

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

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

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

  • 日期、時間、貨幣和擴充數值類型
  • 地理空間應用程式
  • 編碼或加密的數據

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

  1. 撰寫程式代碼並建置定義UDT的元件。 UDT 是使用 .NET Framework Common Language Runtime (CLR) 所支援的任何語言來定義,這些語言會產生可驗證的程序代碼。 這包括 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 只存在於單一資料庫的內容中,而且一旦註冊后,就與建立外部檔案沒有相依性。

  4. 使用UDT建立資料表、變數或參數。 用戶定義型別可用來做為數據表的數據行定義、做為 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。