sql-server - 向 SQL Azure 中的现有表添加标识列/主键
问题描述
如果更改 SQL Azure 表以添加标识列作为主键,是否会创建新表并删除原始表?
我有一张非常大的桌子和有限的空间。我担心如果我将标识列(作为 PK)添加到此表中,它将被删除并重新创建,从而使我的数据库大小加倍。
我读过添加列只是元数据更改,但我不确定身份和主键列。我已经读过重新设置标识属性会导致表被删除并重新创建,但我不确定添加标识列是否执行与重新设置相同的操作,因为它正在添加列。
解决方案
就像@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;
推荐阅读
- laravel - Laravel-echo-server , net::ERR_CONNECTION_TIMED_OUT
- node.js - 模型在发布路由中返回未定义的属性但没有获取路由
- django - 选择多列与一列的group by django orm
- vb.net - DataGridView 中的算术运算
- postgresql - 定义表中不存在时删除 jsonb 键
- android - 如何在 FLEXIBLE 应用内更新 android 中完成下载时收到通知?
- r - 在 Shiny 的 Plotly 子图中未触发点击事件
- java - 每次开始新活动时都会覆盖 ArrayList 共享首选项
- ionic3 - IonScroll.scrollTop 不滚动
- matplotlib - Matplotlib:保存图表无法正常工作,除非我在它之后使用 plt.show()