溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SQL?Server主鍵約束怎么創(chuàng)建

發(fā)布時間:2022-09-07 10:21:14 來源:億速云 閱讀:162 作者:iii 欄目:數(shù)據(jù)庫

這篇“SQL Server主鍵約束怎么創(chuàng)建”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“SQL Server主鍵約束怎么創(chuàng)建”文章吧。

SQL Server PRIMARY KEY(主鍵)約束簡介

主鍵是唯一標(biāo)識表中每一行的一列或一組列。您可以使用主鍵約束為表創(chuàng)建主鍵。
如果主鍵僅包含一列,你可以使用PRIMARY KEY約束作為列約束:

CREATE TABLE table_name (
    pk_column data_type PRIMARY KEY,
    ...
);

如果主鍵有兩列或多列,則必須將主鍵約束用作表約束:

CREATE TABLE table_name (
    pk_column_1 data_type,
    pk_column_2 data type,
    ...
    PRIMARY KEY (pk_column_1, pk_column_2)
);

每個表只能包含一個主鍵,一個主鍵可以包含多個列,即多個列的組合不能重復(fù)。參與主鍵的所有列必須定義為NOT NULL。如果未為所有主鍵列指定NOT NULL約束,SQL Server會自動為這些列設(shè)置非空約束。

SQL Server PRIMARY KEY約束示例

以下示例創(chuàng)建了一個具有主鍵的表,主鍵由一列組成:

CREATE TABLE dbo.activities (
    activity_id INT PRIMARY KEY IDENTITY,--主鍵
    activity_name VARCHAR (255) NOT NULL,
    activity_date DATE NOT NULL
);

在表dbo.activities中,activity_id列是主鍵列,意味著這一列的值不能重復(fù)

IDENTITY屬性用于activity_id列自動生成唯一的整數(shù)值。

下面創(chuàng)建一個由兩列組成外鍵的新表:

CREATE TABLE dbo.participants(
    activity_id int,
    customer_id int,
    PRIMARY KEY(activity_id, customer_id)
);

在本例中,activity_idcustomer_id列中的值可以重復(fù),但兩列中的每個值組合都必須是唯一的。

通常,表總是在創(chuàng)建時定義主鍵。然而,有時,現(xiàn)有表可能沒有定義主鍵。在這種情況下,可以使用ALTER TABLE語句向表中添加主鍵。比如示例:

先創(chuàng)建一個沒有主鍵列的表:

CREATE TABLE dbo.events(
    event_id INT NOT NULL,
    event_name VARCHAR(255),
    start_date DATE NOT NULL,
    duration DEC(5,2)
);

然后使event_id列成為主鍵:

ALTER TABLE sales.events 
ADD PRIMARY KEY(event_id);

注意,如果 sales.events 表已經(jīng)有數(shù)據(jù),在將 event_id 列提升為主鍵之前,必須確保 event_id 中的值是不重復(fù)的。

以上就是關(guān)于“SQL Server主鍵約束怎么創(chuàng)建”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI