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

SQL Server 2008 SSMS 圖形介面設定唯一鍵 (Unique Key)

     編輯:關於SqlServer

操作步驟 (表設計師)

  1. 物件總管:展開資料庫 → 資料表
  2. 右鍵目標表 → 設計
  3. 點選需設為唯一的欄位列 (可按 Ctrl 多選)
  4. 右鍵選取欄位 → 索引/鍵...
  5. 在「索引/鍵」對話框:點選 加入
  6. 右側屬性格:類型 → 選擇「唯一鍵」
  7. 關閉對話框 → 儲存表 (Ctrl+S)

T-SQL 等效指令

-- 新增唯一非叢集索引 (預設)
ALTER TABLE dbo.MyTable ADD CONSTRAINT UQ_MyTable_Col1 UNIQUE NONCLUSTERED (Col1);

-- 新增唯一叢集索引 (表只能有一個叢集索引)
ALTER TABLE dbo.MyTable ADD CONSTRAINT UQ_MyTable_Col1 UNIQUE CLUSTERED (Col1);

-- 多欄位唯一鍵
ALTER TABLE dbo.MyTable ADD CONSTRAINT UQ_MyTable_Col1_Col2 UNIQUE (Col1, Col2);

-- 允許 NULL 但保持唯一 (Filtered Index, SQL 2008+)
CREATE UNIQUE NONCLUSTERED INDEX UQ_MyTable_Col1_NotNull 
ON dbo.MyTable (Col1) WHERE Col1 IS NOT NULL;

唯一鍵 vs 主鍵 vs 唯一索引

特性主鍵 (PK)唯一鍵 (UK)唯一索引
每張表數量1多個多個
允許 NULL否是 (單一 NULL)是 (單一 NULL)
預設索引類型CLUSTEREDNONCLUSTEREDNONCLUSTERED
外來鍵參考可可不可直接參考
語義含義實體識別業務唯一性效能/唯一性

注意事項

  • 大表新增唯一鍵需掃描全表檢查重複,會長時間鎖表
  • 企業版可用 ONLINE = ON 減少封鎖
  • 已有重複資料會導致建立失敗,需先清理
  • Filtered Unique Index 可解決「可 NULL 但非 NULL 唯一」需求
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved