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

SQL Server 約束建立與刪除完整語法指南:主鍵、唯一、檢查、預設、外鍵

     編輯:關於SqlServer

五大約束類型速查

約束功能關鍵字
主鍵唯一 + 不可為 NULL,唯一識別每列PRIMARY KEY
唯一唯一,允許單一 NULLUNIQUE
檢查限制欄位值域/格式(如年齡、Email 格式)CHECK
預設未指定值時自動填入預設值DEFAULT
外鍵建立兩表參考關聯,維護參考完整性FOREIGN KEY

新增約束語法(ALTER TABLE ... ADD CONSTRAINT)

-- 主鍵
ALTER TABLE TableName ADD CONSTRAINT PK_ColName PRIMARY KEY (ColName);

-- 唯一
ALTER TABLE TableName ADD CONSTRAINT UQ_ColName UNIQUE (ColName);

-- 預設
ALTER TABLE TableName ADD CONSTRAINT DF_ColName DEFAULT ('未知地址') FOR ColName;

-- 檢查(年齡 12~15)
ALTER TABLE TableName ADD CONSTRAINT CK_ColName CHECK (ColName BETWEEN 12 AND 15);

-- 外鍵
ALTER TABLE TableName ADD CONSTRAINT FK_ColName 
    FOREIGN KEY (ColName) REFERENCES RefTableName (RefColName);

刪除約束語法

ALTER TABLE TableName DROP CONSTRAINT 約束名稱;

命名慣例建議

類型前綴範例
主鍵PK_PK_Employee_ID
唯一UQ_UQ_Employee_Email
檢查CK_CK_Employee_Age_Range
預設DF_DF_Employee_HireDate
外鍵FK_FK_Employee_Department

建立登入帳戶與資料庫使用者

-- 建立 Windows 驗證登入
EXEC sp_grantlogin 'DOMAIN\UserName';

-- 在資料庫中建立使用者對應登入
EXEC sp_grantdbaccess 'DOMAIN\UserName', 'DBUserName';

-- 授權(範例:db_owner)
EXEC sp_addrolemember 'db_owner', 'DBUserName';

現代做法(SQL Server 2012+):請改用 CREATE LOGIN、CREATE USER、ALTER ROLE ... ADD MEMBER,sp_grantlogin 等舊程序已淘汰。

預設約束實務說明

  • 適用於「大多數列值相同」的欄位(如 Country DEFAULT 'TW'、IsActive DEFAULT 1)。
  • 插入時略過該欄位或指定 DEFAULT 關鍵字即自動套用:INSERT INTO T (Col1) VALUES (DEFAULT);
  • 不佔用額外儲存空間(中繼資料中記錄預設值)。

企業管理員圖形化操作對應

  1. 企業管理員 → 安全性 → 登入 → 右鍵「新增登入」。
  2. 填寫名稱、密碼(SQL 驗證)或選擇 Windows 驗證。
  3. 「資料庫存取」索引標籤勾選目標資料庫。
  4. 「資料庫角色」勾選 db_owner 或自訂角色。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved