1. 程式人生 > >SQLServer之PRIMARY KEY約束

SQLServer之PRIMARY KEY約束

ctrl+ HERE server mage 設計 -- ctrl+s bubuko 連接數

原文:SQLServer之PRIMARY KEY約束

PRIMARY KEY約束添加規則

1、在表中常有一列或多列的組合,其值能唯一標識表中的每一行,這樣的一列或多列成為表的主鍵(PrimaryKey)。

2、一個表只能有一個主鍵,而且主鍵約束中的列不能為空值。

3、只有主鍵列才能被作為其他表的外鍵所創建。

4、一般情況下一個表中只能有一個主鍵。

使用SSMS數據庫管理工具添加主鍵約束

使用SSMS數據庫管理工具添加一列作為一個主鍵約束

1、連接數據庫,選擇數據表-》右鍵點擊,選擇設計。

技術分享圖片

2、在新窗口中,選擇一行,右鍵點擊-》選擇設置主鍵-》點擊保存按鈕(或者ctrl+s)。

技術分享圖片

3、刷新表查看示例結果。

技術分享圖片

使用SSMS數據庫管理工具添加多列作為一個主鍵約束

1、連接數據庫,選擇數據表-》右鍵點擊-》選擇設計。

技術分享圖片

2、在新窗口中-》按下ctrl鍵,選擇多行-》右鍵點擊-》選擇設置主鍵-》點擊保存(或者ctrl+s)。

技術分享圖片

3、刷新表查看示例結果。

技術分享圖片

使用T-SQL腳本添加主鍵約束

使用T-SQL腳本添加一列作為一個主鍵約束

當表中約束存在時,不可以直接添加主鍵約束,因為一張表只允許存在一個主鍵約束,如果需要添加主鍵約束需要先刪除已存在的主鍵約束再添加主鍵約束。當表中不存在主鍵約束時,可直接添加主鍵約束。

語法:

if exists(select * from sysobjects where name=約束名)


alter table 數據庫名.[dbo].表名 drop constraint 約束名;
alter table 數據庫名.[dbo].表名 add constraint 約束名 primary key(列名 [asc|desc]);

示例:

--如果約束存在則刪除約束,如果約束不存在則不刪除
if exists(select * from sysobjects where name=‘idcon2‘)
alter table [testss].[dbo].[test1] drop constraint idcon2;
--添加約束
alter table [testss].[dbo].[test1] add constraint idcon2 primary key(id asc);

技術分享圖片

技術分享圖片

使用T-SQL腳本添加多列作為一個主鍵約束

當表中約束存在時,不可以直接添加主鍵約束,因為一張表只允許存在一個主鍵約束,如果需要添加主鍵約束需要先刪除已存在的主鍵約束再添加主鍵約束。當表中不存在主鍵約束時,可直接添加主鍵約束。

語法:

--添加多列主鍵約束

if exists(select * from sysobjects where name=約束名)
alter table 數據庫名.[dbo].表名 drop constraint 約束名;
alter table 數據庫名.[dbo].表名 add constraint 約束名 primary key(列名 [asc|desc],列名 [asc|desc],......);

示例:

--添加多列主鍵約束
if exists(select * from sysobjects where name=‘idcon2‘)
alter table [testss].[dbo].[test1] drop constraint idcon2;
--添加約束
alter table [testss].[dbo].[test1] add constraint idcon2 primary key(id asc,name desc);

技術分享圖片

PRIMARY KEY約束優缺點

優點:

1、簡單、效率高。

2、保證數據完整性。

3、不會有空值。

4、不允許存在重復值。

缺點:

1、主鍵自增一般使用int型,有數據條數的限制。

2、在數據庫進行數據合並時會比較麻煩。

SQLServer之PRIMARY KEY約束