Sql server 在预部署脚本中重命名表后,如何使用SQLPackage强制创建表?

Sql server 在预部署脚本中重命名表后,如何使用SQLPackage强制创建表?,sql-server,sql-server-data-tools,dacpac,Sql Server,Sql Server Data Tools,Dacpac,根据另一个问题,我应该能够在预部署脚本中重命名现有表,并且dacpac应该在部署过程中重新创建原始表。但是,我遇到的问题是,当视图或存储过程使用该表时,不会重新创建该表,反而会出现错误。有没有办法在部署过程中强制创建具有原始名称的重命名表 我确实使用了/Properties:CreateNewDatabase=True,但它似乎不起作用。CreateNewDatabase选项定义为“指定是否应更新目标数据库,或者在发布到数据库时是否应删除并重新创建目标数据库。” 因此,要保留重命名的表,需要执行

根据另一个问题,我应该能够在预部署脚本中重命名现有表,并且dacpac应该在部署过程中重新创建原始表。但是,我遇到的问题是,当视图或存储过程使用该表时,不会重新创建该表,反而会出现错误。有没有办法在部署过程中强制创建具有原始名称的重命名表


我确实使用了/Properties:CreateNewDatabase=True,但它似乎不起作用。

CreateNewDatabase选项定义为“指定是否应更新目标数据库,或者在发布到数据库时是否应删除并重新创建目标数据库。”

因此,要保留重命名的表,需要执行更新,因此
/Properties:CreateNewDatabase=False

我认为您需要包括以下开关:

DropObjectsNotInSource=FALSE
指定在发布到数据库时,是否从目标数据库中删除数据库快照(.dacpac)文件中不存在的对象。此值优先于DropExtendedProperties


/Properties:BlockWhenDriftDetected=False
指定是否阻止更新架构与其注册不再匹配或未注册的数据库。

设置这些标志无效。在部署步骤中没有重新创建重命名的表。好的,我错了。我清理了其他参数,它似乎起了作用。我会列出它们,但有很多。:-)是的,有很多,其中一些可能相互矛盾。很高兴你解决了这个问题。你能发布你正在使用的sqlpackage命令和开关吗?