微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

解决方法

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。