6

我有一个Web应用程序的数据库项目,目前我已配置为失败,如果在部署过程中可能会发生数据丢失。我觉得这样更安全。但是我遇到了一个问题。实际上,我需要在可能出现数据丢失的情况下部署更改,即缩短列长度,但实际上没有任何内容会被删除,但系统认为它会。VS2010数据库项目部署,如果数据丢失可能会发生失败?

我有2个问题。

第一个是这样的:除了启用或禁用捕获所有去或不去,是否有任何方法可以更细化地控制这个过程,即指定列可以放下或缩短?有什么办法可以更好地控制这个过程吗?

第二个是,你们如何处理这些情况?最初我曾希望添加一个预部署脚本来放置这些列就足够了,但它似乎也会在这些文件中捕获掉等等。

+0

这并不是说配置引擎解析部署前脚本和“渔获量下降”,问题在于架构比较在预部署脚本之前运行,因此如果表包含行,则生成的部署脚本会包含检查和raiserror。如果你打开生成的SQL脚本,你可以看到这个。 – 2013-02-27 17:36:41

回答

2
  1. 不,不幸的是,没有办法以更细化的方式控制它。
  2. 我禁用它时,我知道我会部署会导致数据丢失,但是我想要的东西。然后我重新启用它。另外,我会一直检查部署到生产时出现的更改脚本。
+0

你如何禁用它? – 2017-12-06 08:15:04

0

只需将预部署脚本中的列更新为截断长度?

例如:以截断我的山坳至20:

UPDATE mycol = LEFT(mycol, 20) 
FROM mytable 
WHERE mycol != LEFT(mycol, 20) 
+0

使用此方法可能会遇到的问题是模式比较在预部署脚本之前运行,因此如果表包含行,则发布脚本可能仍会包含检查和raiserror。 – 2013-02-27 17:30:18

相关问题