SQL Server 2005(代號 Yukon)引入 CLR 整合,允許使用 .NET Framework 語言(C#、VB.NET)建立使用者定義型別,突破內建資料型別限制,實現複雜資料的封裝、驗證與運算。
CREATE ASSEMBLY 註冊至資料庫。CREATE TYPE 將 .NET 類別對應至 SQL 型別系統。Microsoft.SqlServer.Server.SqlUserDefinedType 屬性標記的結構體/類別。IBinarySerialize(序列化)、INullable、ToString()/Parse()(字串轉換)。CREATE ASSEMBLY MyUDT FROM 'path\dll' WITH PERMISSION_SET = SAFE;。CREATE TYPE dbo.MyType EXTERNAL NAME MyUDT.[Namespace.ClassName];。dbo.MyType。| PERMISSION_SET | 說明 |
|---|---|
| SAFE | 預設,僅允許運算、資料存取,不可存取外部資源(檔案、網路、登錄)。 |
| EXTERNAL_ACCESS | 允許存取外部資源,需資料庫設定 TRUSTWORTHY 或簽署非對稱金鑰/憑證。 |
| UNSAFE | 完全信任,可呼叫 Unmanaged 碼、操作執行緒、記憶體,極度不建議生產環境使用。 |
sp_configure 'clr enabled', 1; RECONFIGURE; 啟用。