以sqlserver2008為例。
創(chuàng)新互聯(lián)建站是專(zhuān)業(yè)的石門(mén)網(wǎng)站建設(shè)公司,石門(mén)接單;提供網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行石門(mén)網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
1、登錄SQL Server Management Studio。
2、進(jìn)入后,查看左邊的樹(shù),找到要查找的表所在的庫(kù)。
3、依次點(diǎn)擊數(shù)據(jù)庫(kù)——系統(tǒng)數(shù)據(jù)庫(kù)——表——系統(tǒng)表——表名左邊的“+”——鍵
4、如圖所示就是主鍵名:
5、如要?jiǎng)h除,右鍵點(diǎn)擊鍵名,會(huì)有刪除按鈕,點(diǎn)擊刪除即可。
1.
首先刪除主鍵,
然后重新創(chuàng)建主鍵,
重新創(chuàng)建主鍵的時(shí)候,
需要說(shuō)明本主鍵是使用
非聚集索引
primary
key
nonclustered
(
sno
)
2.
a:
pad_index
=
{
on
|
off
}
指定索引填充。默認(rèn)值為
off。
on
fillfactor
指定的可用空間百分比應(yīng)用于索引的中間級(jí)頁(yè)。
off
或不指定
fillfactor
考慮到中間級(jí)頁(yè)上的鍵集,將中間級(jí)頁(yè)填充到接近其容量的程度,以留出足夠的空間,使之至少能夠容納索引的最大的一行。
b:
fillfactor
=fillfactor
指定一個(gè)百分比,指示在創(chuàng)建或重新生成索引期間,數(shù)據(jù)庫(kù)引擎對(duì)各索引頁(yè)的葉級(jí)填充的程度。fillfactor
必須為介于
1
至
100
之間的整數(shù)值。默認(rèn)值為
0。如果
fillfactor
為
100
或
0,則數(shù)據(jù)庫(kù)引擎將創(chuàng)建完全填充葉級(jí)頁(yè)的索引。
c:
ignore_dup_key
=
{
on
|
off
}
指定在插入操作嘗試向唯一索引插入重復(fù)鍵值時(shí)的錯(cuò)誤響應(yīng)。ignore_dup_key
選項(xiàng)僅適用于創(chuàng)建或重新生成索引后發(fā)生的插入操作。當(dāng)執(zhí)行
create
index、alter
index
或
update
時(shí),該選項(xiàng)無(wú)效。默認(rèn)值為
off。
on
向唯一索引插入重復(fù)鍵值時(shí)將出現(xiàn)警告消息。只有違反唯一性約束的行才會(huì)失敗。
off
向唯一索引插入重復(fù)鍵值時(shí)將出現(xiàn)錯(cuò)誤消息。整個(gè)
insert
操作將被回滾。
d:
statistics_norecompute
=
{
on
|
off}
指定是否重新計(jì)算分發(fā)統(tǒng)計(jì)信息。默認(rèn)值為
off。
on
不會(huì)自動(dòng)重新計(jì)算過(guò)時(shí)的統(tǒng)計(jì)信息。
off
啟用統(tǒng)計(jì)信息自動(dòng)更新功能。
若要恢復(fù)統(tǒng)計(jì)信息自動(dòng)更新,請(qǐng)將
statistics_norecompute
設(shè)置為
off,或執(zhí)行
update
statistics
但不包含
norecompute
子句。
e:
on
[primary]
是指
索引創(chuàng)建在
primary
這個(gè)文件組上。
3、
以全國(guó)的身份證為例子:
對(duì)于
身份證號(hào)碼,
有個(gè)
“唯一”
的索引
而對(duì)于
姓名,
有個(gè)
“不唯一”
的索引。
“不唯一”
的索引
,
雖然不能定位到唯一的某一行,
但是可以縮小范圍。定位到某些行。
4.
聚集索引
clustered
創(chuàng)建索引時(shí),鍵值的邏輯順序決定表中對(duì)應(yīng)行的物理順序。聚集索引的底層(或稱(chēng)葉級(jí)別)包含該表的實(shí)際數(shù)據(jù)行。一個(gè)表或視圖只允許同時(shí)有一個(gè)聚集索引。
主鍵是對(duì)表的約束,保證數(shù)據(jù)的唯一性!
外鍵是建立表于表之間的聯(lián)系,方便程序的編寫(xiě)??!
插入一條記錄后想要立刻獲取其數(shù)據(jù)表中的sql server主鍵返回值。這個(gè)主鍵是自動(dòng)生成的,其實(shí)實(shí)現(xiàn)的方式有很多,比如再進(jìn)行一次查詢(xún),獲取出來(lái)。或者在插入數(shù)據(jù)之前取出最大值,在最大值上面加一等等,方法很多,但是有些很不方便。
個(gè)人感覺(jué)最快的方式就是,在插入數(shù)據(jù)后直接獲取sql server主鍵的值,然后返回過(guò)來(lái)。
方法如下:
sql語(yǔ)句如下:
INSERT INTO tableName (fieldname ...) values (value ...) SELECT @@IDENTITY AS returnName;
在sql語(yǔ)句中加入SELECT @@IDENTITY AS returnName;用來(lái)獲取sql server主鍵的值
在程序中獲取返回值:
public int sqlexecutereader(string sql) { DBopen(); SqlCommand myComm = new SqlCommand(sql, Connection); int newID = Convert.ToInt32(myComm.ExecuteScalar()); DBclose(); return newID; }
當(dāng)然在此處主鍵是int類(lèi)型的自動(dòng)增加的。DBopen();DBclose();的操作在此就不多說(shuō)了。
主鍵就是可以唯一標(biāo)示的,比如你的身份證號(hào)就是可以做主鍵,因?yàn)樗欢ㄎㄒ粯?biāo)示你,而你的姓名不能是主鍵,因?yàn)橛兄孛?,不能唯一?biāo)示你。外鍵就是和你有關(guān)系,但唯一標(biāo)示的卻是別人,比如你愛(ài)人的身份證號(hào),當(dāng)然這樣比喻不很貼切,只是好理解而已。