首先說明一點,主鍵又稱主鍵約束,它也是一種約束,看下它和唯一約束的創(chuàng)建語法:
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站建設、成都網(wǎng)站制作、郁南網(wǎng)絡推廣、成都小程序開發(fā)、郁南網(wǎng)絡營銷、郁南企業(yè)策劃、郁南品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供郁南建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
alter
table
Person
add
constraint
PK_Id
primary
key
(Id)
alter
table
Person
add
constraint
UQ_Name
unique
(Name)
主鍵和唯一約束都要求字段值唯一,除此外,它們還有如下區(qū)別:
·同一張表只能有一個主鍵,但能有多個唯一約束;
·主鍵字段值不能為NULL,唯一約束字段值可以為NULL;
·主鍵字段可以做為其他表的外鍵,唯一約束字段不可以做為其他表的外鍵;
·SQLServer默認為主鍵字段創(chuàng)建聚集索引,為唯一約束字段創(chuàng)建非聚集索引;
主鍵,唯一,但是不能為空;唯一約束,唯一,但是可以為空
創(chuàng)建表的時候可以 比如ID列自增
create table T1
(
id int identity(1,1),
ccode varchar(10),
cname varchar(100)
)
1.
首先刪除主鍵,
然后重新創(chuàng)建主鍵,
重新創(chuàng)建主鍵的時候,
需要說明本主鍵是使用
非聚集索引
primary
key
nonclustered
(
sno
)
2.
a:
pad_index
=
{
on
|
off
}
指定索引填充。默認值為
off。
on
fillfactor
指定的可用空間百分比應用于索引的中間級頁。
off
或不指定
fillfactor
考慮到中間級頁上的鍵集,將中間級頁填充到接近其容量的程度,以留出足夠的空間,使之至少能夠容納索引的最大的一行。
b:
fillfactor
=fillfactor
指定一個百分比,指示在創(chuàng)建或重新生成索引期間,數(shù)據(jù)庫引擎對各索引頁的葉級填充的程度。fillfactor
必須為介于
1
至
100
之間的整數(shù)值。默認值為
0。如果
fillfactor
為
100
或
0,則數(shù)據(jù)庫引擎將創(chuàng)建完全填充葉級頁的索引。
c:
ignore_dup_key
=
{
on
|
off
}
指定在插入操作嘗試向唯一索引插入重復鍵值時的錯誤響應。ignore_dup_key
選項僅適用于創(chuàng)建或重新生成索引后發(fā)生的插入操作。當執(zhí)行
create
index、alter
index
或
update
時,該選項無效。默認值為
off。
on
向唯一索引插入重復鍵值時將出現(xiàn)警告消息。只有違反唯一性約束的行才會失敗。
off
向唯一索引插入重復鍵值時將出現(xiàn)錯誤消息。整個
insert
操作將被回滾。
d:
statistics_norecompute
=
{
on
|
off}
指定是否重新計算分發(fā)統(tǒng)計信息。默認值為
off。
on
不會自動重新計算過時的統(tǒng)計信息。
off
啟用統(tǒng)計信息自動更新功能。
若要恢復統(tǒng)計信息自動更新,請將
statistics_norecompute
設置為
off,或執(zhí)行
update
statistics
但不包含
norecompute
子句。
e:
on
[primary]
是指
索引創(chuàng)建在
primary
這個文件組上。
3、
以全國的身份證為例子:
對于
身份證號碼,
有個
“唯一”
的索引
而對于
姓名,
有個
“不唯一”
的索引。
“不唯一”
的索引
,
雖然不能定位到唯一的某一行,
但是可以縮小范圍。定位到某些行。
4.
聚集索引
clustered
創(chuàng)建索引時,鍵值的邏輯順序決定表中對應行的物理順序。聚集索引的底層(或稱葉級別)包含該表的實際數(shù)據(jù)行。一個表或視圖只允許同時有一個聚集索引。