首页 > 解决方案 > 向 SQL Azure 中的现有表添加标识列/主键

问题描述

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

我有一张非常大的桌子和有限的空间。我担心如果我将标识列(作为 PK)添加到此表中,它将被删除并重新创建,从而使我的数据库大小加倍。

我读过添加列只是元数据更改,但我不确定身份和主键列。我已经读过重新设置标识属性会导致表被删除并重新创建,但我不确定添加标识列是否执行与重新设置相同的操作,因为它正在添加列。

标签: sql-serverazure-sql-database

解决方案


就像@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;

推荐阅读