【发布时间】:2013-09-26 14:33:32
【问题描述】:
我想在现有表中删除一列。当我只是从表的创建脚本中删除它时,它会在部署时导致错误(数据丢失......)。我想允许(在这种情况下)列删除。你会怎么做?
【问题讨论】:
标签: visual-studio database-project
我想在现有表中删除一列。当我只是从表的创建脚本中删除它时,它会在部署时导致错误(数据丢失......)。我想允许(在这种情况下)列删除。你会怎么做?
【问题讨论】:
标签: visual-studio database-project
要禁用数据丢失错误:
该设置将仅针对该 1 个架构比较进行更改,并将保存在架构比较文件中。如果您只想这样做一次,则需要在删除列后重新启用该选项。
【讨论】:
我们通过创建一个 PreDeployment 脚本来删除该列来做到这一点。推理是我们不想让数据库中所有对象的数据丢失。
您可以创建自动版本检查以仅执行一次(有关如何使用 SSDT 自动执行此操作的步骤,请参阅我对另一篇帖子 Nontrivial incremental change deployment with Visual Studio database projects 的回答。)
或者您可以将脚本提供给 devops,并在安装手册中包含说明,以便为特定版本运行一次。
发布上线后,您可以删除 PreDeployment 脚本。
【讨论】: