簡體   English   中英

使用 SQL 在現有表中創建和填充主鍵列

[英]Creating and populating a primary key column in an existing table using SQL

問題

我不是 100% 確定如何在現有表中創建一個可以充當唯一主鍵的列,並希望驗證我下面的方法是否有效,以及如果適用的話,就可能更好的方法提出建議/建議.

設想

假設我有一個如下所示的現有表( tbl_employee

Employee Name    Location
------------------------------
John              London
Sharath           New York
Nivas             Mumbai
Praveen           Texas
Maharaj           Las Vegas

我想在這個表中添加一列,它可以作為主鍵,看起來像這樣

EmployeeID
-----------
1
2
3
4
5

試過

為表創建一列,將該列指定為主鍵。 不確定這是否會按預期工作? 驗證/潛在的改進建議將不勝感激。


-- Purpose of this is to add an EmployeeID to the existing table (values such as shown above)
-- Set the EmployeeID as the primary key of the table (no primary key already exists)

ALTER TABLE tbl_employee ADD EmployeeID int IDENTITY(1,1) NOT NULL
ADD CONSTRAINT PK_tbl_employee_EmployeeID PRIMARY KEY CLUSTERED (EmployeeID);

采用

ALTER TABLE tbl_employee 
ADD EmployeeID int IDENTITY(1,1) NOT NULL 
CONSTRAINT PK_tbl_employee_EmployeeID  PRIMARY KEY (EmployeeID);

要么

ALTER TABLE tbl_employee
ADD EmployeeID int IDENTITY(1,1) NOT NULL;

ALTER TABLE tbl_employee
ADD CONSTRAINT PK_tbl_employee_EmployeeID PRIMARY KEY (EmployeeID);

要創建索引,請使用以下命令而不是在列定義中使用CLUSTERED

CREATE INDEX idx__tbl_employee_EmployeeID
ON tbl_employee (EmployeeID);

最后

添加一列作為具有Identity屬性的主鍵,並在一個位置為其創建索引

ALTER TABLE tbl_employee ADD EmployeeID int IDENTITY(1,1) NOT NULL
CONSTRAINT PK_tbl_employee_EmployeeID PRIMARY KEY CLUSTERED (EmployeeID)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM