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

MS SQL 基礎教學:資料完整性四大類型與 SQL Server 實作機制(規則、預設值、約束、觸發器)

     編輯:關於SqlServer

資料完整性確保資料精確性與可靠性。SQL Server 實作四類:1) 實體完整性:主鍵/唯一/Identity 確保列唯一;2) 域完整性:資料型別、CHECK/DEFAULT/NOT NULL/FOREIGN KEY 限制欄位值域;3) 參考完整性:外鍵確保主從表鍵值對應,防止孤立/遺失資料,支援級聯動作;4) 使用者定義完整性:業務特有規則,透過規則/預設值/約束/觸發器實作。本文詳細說明 CREATE RULE/sp_bindrule、CREATE DEFAULT/sp_bindefault、約束語法 (PRIMARY KEY, UNIQUE, CHECK, FOREIGN KEY, DEFAULT)、觸發器在完整性中的角色,並說明規則/預設值將被約束取代的趨勢。

四大完整性類型對照

類型核心機制典型實作
實體完整性列唯一識別PRIMARY KEY, UNIQUE, IDENTITY
域完整性欄位值域限制CHECK, DEFAULT, NOT NULL, FOREIGN KEY, 資料型別
參考完整性主從表鍵值一致FOREIGN KEY (CASCADE UPDATE/DELETE)
使用者定義業務特有規則Rule, Default, Constraint, Trigger

規則與預設值 (舊版相容)

CREATE RULE rule_name AS @var > 0 AND @var < 100;
EXEC sp_bindrule 'rule_name', 'table.column';

CREATE DEFAULT default_name AS 'N/A';
EXEC sp_bindefault 'default_name', 'table.column';

注意:規則/預設值為單一資料庫物件,需綁定/解除綁定,功能已被資料行層級 CHECK 約束與 DEFAULT 約束取代,新專案建議直接使用約束。

參考完整性三大保護

  1. 禁止插入主表不存在鍵值的從表列。
  2. 禁止變更導致從表值孤立的主表鍵值。
  3. 禁止刪除有從表對應記錄的主表記錄 (除非 CASCADE DELETE)。

善用宣告式約束 (DRI) 取代觸發器實作完整性,效能更好、維護更簡單。

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