【发布时间】:2017-05-03 14:26:11
【问题描述】:
表1
Col1 Col2 Col3
1 'Name1' 'Address1'
其中col1 是带有约束'constraint1' 的主键。
现在我想将Table1 重命名为Table2。在其中添加col1_1并将主键从'col1'更改为col1_1
然后创建名为'Table1'的新表
现在我已将表 Table1 重命名为 Table2 并在其中添加列 'col1_1' 作为部署脚本中的主键。
在预部署脚本中:
1:删除旧的主键约束。
2:使用 sp_rename 将 Table1 重命名为 Table2
当我发布数据库时,我收到错误“Table2”对象已存在于 Create 'Table2'
【问题讨论】:
-
你能展示一下脚本吗?听起来你在
sp_rename之后没有GO。 -
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME ='Table1') BEGIN EXEC sp_rename 'Table1', 'Table2' END GO
-
在 sp_rename 之后我确实有 GO
-
重命名之前 Table2 已经存在的任何可能性...您提到了预部署脚本。如果您正在对此进行测试,是否有可能该脚本已经运行,因此 table2 确实已经存在......?或者脚本是否可能在已经运行了该脚本的架构上运行......?
-
你能把整个剧本贴出来吗?这将帮助我们了解哪里出错了。
标签: sql sql-server sql-server-2008 sql-server-2005