2009-11-12 84 views
1

我有一個使用從Visual Studio數據庫項目(GDR2)創建的更改數據捕獲(CDC)的數據庫。Visual Studio +數據庫版+ CDC =部署失敗

我的問題是,我有一個分析CDC信息,然後返回數據的存儲過程。你問這個問題怎麼樣?那麼,操作順序如下。

  1. 部署前的腳本
  2. 指標,鑰匙等
  3. 程序
  4. 部署後腳本

內部部署後腳本是在那裏我能CDC。這裏存在問題。在CDC表上採取行動的程序正在轟炸,因爲它們還不存在!我試圖在創建表的腳本中調用sys.sp_cdc_enable_table,但它不喜歡這樣。

錯誤102 TSD03070:在此上下文中無法識別此語句。 C:\模式對象\架構\ DBO \ \表20 Foo.table.sql 1美孚

  • 是否有更好的/內置的方式,使疾病預防控制中心,使得它的引用時可用存儲過程是否被創建?
  • 有沒有辦法在創建表之後但在創建其他對象之前運行腳本?
  • 如何創建過程依賴關係的方法被定罪?
  • 或者我只是在做不應該做的事情?!?!

現在,我有一個工作。

  1. 註釋掉存儲過程體
  2. 部署(在創建CDC)
  3. 取消註釋存儲過程
  4. 部署
  5. 一切都很好,直到下一次我更新CDC跟蹤表。那麼我需要評論一下「冒犯」的程序。

感謝您閱讀我的問題,並感謝您的幫助!

回答

0

我並不是很熟悉VSDB項目,但我至少可以嘗試提供替代解決方法。這只是答案的一半,但是可以在步驟1中刪除而不是ALTER處理程序?至少你這樣做不需要使用proc的內容。在「我們有db差異之前」的日子裏,我通常會在更改任何表之前刪除所有非表位。

我知道這沒有得到根本原因,但可能至少是一個更簡單/更清晰的解決方法。如果沒有別的,你會知道proc是否存在,阻止你認爲所有的都很酷,但你的proc身體不見了,因此它沒有做任何事情。

+0

我不確定這會起作用。 proc是一個文件foo.proc。SQL,每次我嘗試部署時,Visual Studio都會執行。該文件本身是一個CREATE PROCEDURE dbo.foo AS ... 我不確定部署是如何工作的,如果它破壞了一切,然後從頭開始。問題的間歇性使其成爲PITA。例如,沒有新的專欄ATM,它是着名的:) – 2009-11-12 19:58:20

相關問題