【问题标题】:Adding an identity column / primary key to an existing table in SQL Azure向 SQL Azure 中的现有表添加标识列/主键
【发布时间】:2020-10-08 18:37:21
【问题描述】:

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

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

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

【问题讨论】:

  • 更改表不会删除它。
  • 嗨@cjohns,如果我的回答对你有帮助,希望你能接受。这对其他社区成员可能是有益的。谢谢。

标签: sql-server azure-sql-database


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 2012-01-12
    • 2016-09-11
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 2012-11-25
    相关资源
    最近更新 更多