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

How do I force the creation of tables using SQLPackage after renaming the table in the pre-deploy script?

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

我确实使用了 /Properties:CreateNewDatabase=True,但它似乎没有用。

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

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

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

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

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