PRIMARY KEY條件約束
PRIMARY KEY條件約束能夠將某單一欄位或多個欄位的組合定義為主索引鍵(其必須具有獨一性資料欄位)。
例如,身分證字號欄位具有獨一性資料,因此可以用來建立主索引鍵。
如果將多個欄位組合成主索引鍵,則各別欄位中所存放的資料是允許重複的,然這些欄位組合後的值則必須是獨一的。
主索引鍵注意事項:
1.
每一個資料表只能擁有一個PRIMARY KEY條件約束,亦即只能有一個主索引鍵。
2.
主索引鍵的來源欄位不能允許接受Null值。
3.
最好是長度小且為整數欄位,以自動編號欄位最適合。
※新建資料表時建立PRIMARY
KEY條件約束
1.
使用SQL Server Enterprise Manager建立資料表:
(1)
如果欲使用PRIMARY KEY條件約束將某單一欄位定義為主索引鍵,需先將此欄位設定成不允許接受Null值,再於此欄位左側方塊按右鍵選[設定主索引鍵]即可。
(2)
承上,若欲設多個欄位組成主索引鍵,需先將此欄位設定成不允許接受Null值,按住Ctrl鍵不放,於各欄位左側方塊選定後,按右鍵選[設定主索引鍵]即可
(3)
欲設定PRIMARY KEY條件約束的獨一索引,可於工具列中按[資料表和索引屬性]按鈕,選取[索引/索引鍵]標籤頁面。從[選定的索引]清單中選取PRIMARY KEY條件約束(預設名稱是’PK_資料表名稱’),並進行下列設定:
a.
於[索引名稱]文字方塊中鍵入PRIMARY KEY條件約束名稱,必須具有唯一性。
b.
預設會將PRIMARY KEY條件約束的獨一索引放在PRIMARY檔案群組中。
c.
如果希望將PRIMARY KEY條件約束的獨一索引建立成叢集獨一索引(Clustered Unique Index),請勾選核取方塊□建立成叢集-CLUSTERED(C)。
(4)
按[存檔]按鈕。
2.
使用CREATE TABLE命令
如果要使用PRIMARY KEY條件約束將某單一欄位定義成主索引鍵,可採用:
CREATE TABLE table_name
(
{ column_name data_type
[[ CONSTRAINT
constraint_name]
{PRIMARY KEY}
[CLUSTERED |
NONCLUSTERED]
[WITH FILLFACTOR =
fillfactor]
[ON {filegroup |
DEFAULT}]
]
} [,…n]
)
如果要使用PRIMARY
KEY條件約束將多個欄位的組合定義成主索引鍵,則採用:
CREATE TABLE table_name
(
{ column_name data_type
} [,…n]
{[CONSTRAINT
constraint_name]
{PRIMARY KEY}
[CLUSTERED |
NONCLUSTERED]
{(column[,…n])}
[WITH FILLFACTOR =
fillfactor]
[ON {filegroup |
DEFAULT}]
}
)
語法中的CONSTRAINT
constraint_name是一個可選擇性的引數,用來指定PRIMARY KEY條件約束的名稱。
關鍵字PRIMARY KEY是不可省略的,它表示要建立一個PRIMARY KEY條件約束。
如果希望替PRIMARY
KEY條件約束建立一個叢集獨一索引,則加入關鍵字CLUSTERED。
WITH FILLFACTOR =
fillfactor引數用來指定PRIMARY KEY條件約束之獨一索引的填充係數。
ON引數用來指定存放PRIMARY
KEY條件約束之獨一索引的檔案群組。
範例:
建立一個資料表,並以PRIMARY
KEY條件約束將欄位Id定義為主索引鍵,並將PRIMARY
KEY條件約束的名稱設為PK_Id:
/* 檔案名稱:Demo618.sql
*/
CREATE TABLE DemoTable8
(
Id char(10) CONSTRAINT
PK_Id PRIMARY KEY,
Name varchar(16)
)
沒有留言:
張貼留言