如果您更改SQL Azure表以将标识列添加为主键,是否会创建新表并删除原始表?
我的桌子很大,空间有限。我担心如果将身份列(如PK)添加到此表中,则会将其删除并重新创建,从而使数据库的大小增加一倍。
我已经阅读到添加列只是元数据更改,但是我不确定身份和主键列。我已经读过,重新种植一个identity属性会导致一个表被删除并重新创建,但是我不确定如果添加一个identity列会执行与重新种植相同的操作,因为它正在添加一个列。
答案 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;