将标识列/主键添加到SQL Azure中的现有表

时间:2020-10-08 18:37:21

标签: sql-server azure-sql-database

如果您更改SQL Azure表以将标识列添加为主键,是否会创建新表并删除原始表?

我的桌子很大,空间有限。我担心如果将身份列(如PK)添加到此表中,则会将其删除并重新创建,从而使数据库的大小增加一倍。

我已经阅读到添加列只是元数据更改,但是我不确定身份和主键列。我已经读过,重新种植一个identity属性会导致一个表被删除并重新创建,但是我不确定如果添加一个identity列会执行与重新种植相同的操作,因为它正在添加一个列。

1 个答案:

答案 0 :(得分:0)

就像@Larnu所说的那样,更改SQL Azure表以将标识列添加为主键不会创建新表并删除原始表。

您可以使用以下示例代码对其进行测试:

CREATE TABLE dbo.T1
(    C1 INT IDENTITY(1,1) NOT NULL
,    C2 nvarchar(50) not null
)

INSERT INTO dbo.T1
VALUES ('a');

INSERT INTO dbo.T1
VALUES ('b');

INSERT INTO dbo.T1
VALUES ('c');

ALTER TABLE T1
   ADD CONSTRAINT PK_identity PRIMARY KEY CLUSTERED (C1);

SELECT *
FROM dbo.T1;