首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

MS SQL 基礎教學:使用者自訂資料型別建立、使用與管理完整指南 (Enterprise Manager 與 sp_addtype/sp_droptype)

     編輯:關於SqlServer

使用者自訂資料型別 (UDDT) 促進跨表欄位定義一致性與可維護性。本文示範:1) Enterprise Manager 建立:資料庫 → User Defined Data Types → 右鍵 New → 指定名稱、基底系統型別、NULL 屬性;2) sp_addtype 系統程序:sp_addtype @typename, @phystype, @nulltype, @owner,範例:birthday datetime NOT NULL, cardid char(18) NOT NULL, address varchar(100) NOT NULL;3) 使用限制:CREATE TABLE 時可覆寫 NULL 屬性,但長度/精度不可變;4) 刪除:EM 刪除或 sp_droptype 'typename',若被表/物件使用則拒絕。附 EM 對話框截圖與執行結果輸出。

建立 UDDT 兩種方式

-- Enterprise Manager: 圖形化介面
-- sp_addtype:
EXEC sp_addtype birthday, datetime, 'not null';
EXEC sp_addtype cardid, 'char(18)', 'not null';
EXEC sp_addtype address, 'varchar(100)', 'not null';

定義使用者自訂資料型別屬性對話框

UDDT 核心特性與限制

  • 資料庫內名稱唯一,不同名稱可共用相同定義。
  • CREATE TABLE 使用 UDDT 時:NULL 屬性可覆寫,長度/精度/小數位不可變。
  • 基底型別不可為 timestamp。
  • 系統型別有額外規格時需加引號:'char(8)', 'varchar(100)'。

刪除 UDDT

-- EM: 右鍵 Delete
-- T-SQL:
EXEC sp_droptype cardid;
-- 輸出: Type has been dropped.
  • 被資料表欄位或其他物件參考時,系統拒絕刪除。

最佳實踐建議

  • 建立企業級命名標準 (如 typ_BirthDate, typ_IDCard, typ_Address)。
  • 集中管理於 Model 資料庫,新資料庫自動繼承。
  • 文件化所有 UDDT 定義與用途,納入資料字典。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved