2月 24, 2022
SQL SERVER-2008-主キー、外部キー、およびデフォルト制約の作成
主キー、外部キー、およびデフォルト制約は、テーブルの作成 これらの制約を適用するのは非常に簡単ですが、実装中にいくつかの混乱や問題があります。 だから私は、さまざまなレベルで、さまざまな方法や方法で作成または追加できるこれらの制約について書こうとしました。
Primary Key Constraint:Primary Key constraintは、列の値の重複を防ぎ、各列に一意の識別子を提供し、列にクラスタ化インデックスを作成します。
1)主キーを作成するCreate Table文
A.列レベル
USE AdventureWorks2008GOCREATE TABLE Products(ProductID INT CONSTRAINT pk_products_pid PRIMARY KEY,ProductName VARCHAR(25));GO
b. テーブルレベル
CREATE TABLE Products(ProductID INT,ProductName VARCHAR(25)CONSTRAINT pk_products_pid PRIMARY KEY(ProductID));GO
2) 主キーを作成するAlter Table文
ALTER TABLE ProductsADD CONSTRAINT pk_products_pid PRIMARY KEY(ProductID)GO
3) 主キーを削除するAlter文
ALTER TABLE ProductsDROP CONSTRAINT pk_products_pid;GO
外部キー制約: 外部キー制約がテーブルSQL Server内の既存の列に追加されると、既定では、列内の既存のデータがチェックされ、NULLを除くすべての値が参照される主キー制約ま
1)外部キーを作成するCreate Table文
A.列レベル
USE AdventureWorks2008GOCREATE TABLE ProductSales(SalesID INT CONSTRAINT pk_productSales_sid PRIMARY KEY,ProductID INT CONSTRAINT fk_productSales_pid FOREIGN KEY REFERENCES Products(ProductID),SalesPerson VARCHAR(25));GO
b. テーブルレベル
CREATE TABLE ProductSales(SalesID INT,ProductID INT,SalesPerson VARCHAR(25)CONSTRAINT pk_productSales_sid PRIMARY KEY(SalesID),CONSTRAINT fk_productSales_pid FOREIGN KEY(ProductID)REFERENCES Products(ProductID));GO
1) 外部キーを作成するAlter Table文
ALTER TABLE ProductSalesADD CONSTRAINT fk_productSales_pid FOREIGN KEY(ProductID)REFERENCES Products(ProductID)GO
2) 外部キーを削除するAlter Table文
ALTER TABLE ProductSalesDROP CONSTRAINT fk_productSales_pid;GO
Default Constraint:ある列で作成されたDefault constraintには、その列にレコードまたはデータが挿入されていないときに制約で指定されたデフォルトデータがあります。
1)デフォルト制約を作成するCreate Table文
A.列レベル
USE AdventureWorks2008GOCREATE TABLE Customer(CustomerID INT CONSTRAINT pk_customer_cid PRIMARY KEY,CustomerName VARCHAR(30),CustomerAddress VARCHAR(50) CONSTRAINT df_customer_Add DEFAULT 'UNKNOWN');GO
B.テーブルレベル:デフォルト制約
には適用されません2)デフォルト制約を追加するAlter Table文
ALTER TABLE CustomerADD CONSTRAINT df_customer_Add DEFAULT 'UNKNOWN' FOR CustomerAddressGO
3) Alter Tableを使用してデフォルト制約を削除する
ALTER TABLE CustomerDROP CONSTRAINT df_customer_AddGO