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