gpt4 book ai didi

SQL 主键异常

转载 作者:行者123 更新时间:2023-12-01 23:43:41 25 4
gpt4 key购买 nike

我有一个由大约 8 个表组成的 Mircrosoft Sql Server 数据库,这些表都是我要更新的相关表。为此,我创建了一些临时表

"CREATE TABLE [vehicle_data].[dbo].[temp_MAINTENANCE_EVENT] (" +
"[maintenance_event_id] int," +
"[maintenance_computer_code_id] int," +
"[veh_eng_maintenance_id] int," +
"CONSTRAINT [PK_maintenance_event_id"] PRIMARY KEY CLUSTERED ([maintenance_event_id] ASC))";

然后在创建所有临时表后,我删除现有表,重命名临时表,并向新表添加外键和索引以加快连接和查询速度。

我遇到的问题是原始主键引用仍然存在。所以当我再次去更新时,我得到了

Exception: There is already an object named 'PK_maintenance_event_id' in the database. Could not create constraint.

我想知道最好的行动方案是什么?是不是创建临时表的时候不设置主键,改名后添加到表中?或者有没有办法重命名约束,以便在我重命名表时可以更改主键约束的名称。

删除原始表后,我希望停机时间尽可能短,但在删除表之前发生的任何事情都可能需要很长时间,这无关紧要。

最佳答案

如果您的临时表需要该约束

创建时使用

CONSTRAINT [PK_maintenance_event_id_temp"]

代替

CONSTRAINT [PK_maintenance_event_id]

当你将 temp 重命名回真实表时

exec sp_rename [PK_maintenance_event_id_temp], [PK_maintenance_event_id]

关于SQL 主键异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30129644/

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