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

SQL Server 2000 使用者自訂資料類型、規則與預設值完整建立指南

     編輯:關於SqlServer

使用者自訂資料類型 (UDT) 可封裝業務語意、統一長度與精度、集中管理 NULL 屬性,搭配 規則 與 預設值,能在資料庫層強制資料完整性,減少應用程式驗證邏輯。

一、建立使用者自訂資料類型

T-SQL 方式

EXEC sp_addtype 
    @typename = 'PostalCode',      -- 唯一名稱,符合識別碼規則
    @phystype = 'char(5)',         -- 基礎系統類型,可含長度/精度/小數位
    @nulltype = 'NOT NULL',        -- 'NULL' | 'NOT NULL' | 'NONULL'
    @owner = 'dbo';                -- 選擇性擁有者

企業管理員 (EM) 方式

資料庫 → 右鍵 屬性 → 使用者定義資料類型 → 新增,視覺化填寫同樣參數。

二、建立規則 — 限定資料格式與範圍

CREATE RULE rule_EmailFormat 
AS 
@value LIKE '%_@_%._%';   -- @value 為佔位符,命名任意 (如 @email, @x)
  • @placeholder 必須以 @ 開頭
  • LIKE 關鍵字為必須,後接模式字串 (支援萬用字元)
  • EM 中同樣可視覺化建立

三、建立預設值 — 自動填充

CREATE DEFAULT def_CreatedDate 
AS GETDATE();   -- 可為常數、函數、系統變數

四、綁定規則與預設值至資料行

-- 綁定預設值
EXEC sp_bindefault 'def_CreatedDate', 'dbo.Orders.OrderDate';

-- 綁定規則
EXEC sp_bindrule 'rule_EmailFormat', 'dbo.Customers.Email';

EM 中:資料表設計師 → 選取資料行 → 預設值/規則 索引標籤 → 選擇已建立物件。

五、在建表時套用 UDT

CREATE TABLE dbo.Employees (
    EmpID     int           PRIMARY KEY,
    ZipCode   PostalCode    NOT NULL,   -- 直接使用 UDT
    Email     varchar(100)  NULL
);
-- 此時 ZipCode 自動擁有 char(5) NOT NULL 屬性
-- 仍需額外綁定規則/預設值 (UDT 本身不攜帶規則/預設)

注意:原文內容有重複區塊,已整合去重。SQL Server 2005+ 建議改用 CREATE TYPE、CHECK CONSTRAINT、DEFAULT CONSTRAINT,功能更強且符合 ANSI 標準。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved