重命名表将导致CREATE语句而不是ALTER

时间:2014-08-25 23:18:54

标签: sql-server sql-server-data-tools

在.sqlproj中,我更改了表的名称(以及其他更改)。 我通过右键单击'重构'在Visual Studio 2012中进行了重命名。选项。 当我尝试发布更改时,部署脚本具有CREATE TABLE命令,而不是用于表重命名的ALTER TABLE命令。 我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

我已经解决了问题的根源。我发布脚本的数据库是真实数据库的副本(bacpac)。 bacpac缺少dbo .__ RefactorLog表,因此在运行脚本时忽略了refactorlog文件并只创建了数据库。

答案 1 :(得分:0)

你会改变已经存在的东西,因为脚本创建了你应该留下的表CREATE TABLE你在脚本中更改名称并没有做任何事情,只是试图改变一个不存在的表的名称显然会导致错误。

此外,如果您已经有一个名为foo的表,并且您想将其名称从foo更改为bar,则不会使用Alter table命令,但以下系统存储过程

EXECUTE sp_rename 'dbo.foo', 'bar'