gpt4 book ai didi

sql-server-2012 - SQL Server更改主键数据类型

转载 作者:行者123 更新时间:2023-12-03 23:25:49 26 4
gpt4 key购买 nike

我正在使用SQL Server 2012

我有一个主键列为INT的表。我需要将其更改为GUID。

我是否要更改表并将int列删除为primary key

添加GUID列并将其设置为Primary并删除旧的INT列?

谢谢。

最佳答案

除非将其删除,否则无法更改主键列。任何更改其数据类型的操作都将导致以下错误。


对象“ XXXX”取决于列“ XXXX”。


唯一的选择是

1.丢弃主键
2.更改数据类型
3.重新创建主键

ALTER TABLE t1  
DROP CONSTRAINT PK__t1__3213E83F88CF144D;
GO

alter table t1
alter column id varchar(10) not null

alter table t1 add primary key (id)


从2012年开始,有一个名为 (DROP_EXISTING = ON)的子句,它通过在最后阶段删除聚簇索引并使所有操作都可以使用旧索引来简化事情。.但对于您而言,此子句将不起作用。

所以我推荐

1.创建具有所需模式和索引的不同名称的新表
2.将数据从旧表插入新表
3.最后在切换时,插入积累的数据
4.将表重命名为旧表名称

这样您可以减少停机时间

关于sql-server-2012 - SQL Server更改主键数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41549549/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com