2013-10-03 179 views
3

我已經將數據庫導入到數據庫項目並直接從蝙蝠我收到200多個關於未解決的引用的錯誤。現在我已經閱讀了幾個帖子和網站,如這個(http://blogs.msdn.com/b/bahill/archive/2009/08/26/using-self-referencing-or-local-3-part-names.aspx),原因將是3個部分的名稱。SSDT未解決的參考錯誤SQL71561

解決方法是右鍵單擊數據庫項目>重構>重命名服務器/數據庫引用。但是我的窗口與前面提到的網站不同,下拉菜單是空的。我正在使用Visual Studio 2010 Professional與SSDT 2010.有關如何解決此問題的任何幫助表示讚賞。

我需要導入大約20到30個數據庫並手動糾正所有這些錯誤幾乎是不可能的。

enter image description here

回答

10

如果這些是當前數據庫,你最好的辦法是導入項目,那麼只要將「MyDBName.dbo。」與「dbo」。如果您想要引用其他數據庫,則應該使用SQLPackage爲這些數據提取dacpac,然後爲它們添加數據庫引用。添加數據庫引用時,請不要選擇將這些數據庫視爲變量的選項,除非這些數據庫的名稱因環境而異。例如,如果您在項目中引用MyDB1.dbo.Table1,並且「MyDB1」始終是該數據​​庫的名稱,則不應嘗試使用數據庫變量。

我已經在我的博客上寫過關於此的內容。也許這會提供一些更好的例子。

http://schottsql.blogspot.com/2012/10/ssdt-external-database-references.html

http://schottsql.blogspot.com/2013/01/ssdt-publishing-and-referenced-databases.html

+0

添加數據庫引用時清除自動填充的「數據庫變量:」字段是關鍵。 – JDawg

-3

我實施打擊SSISDB一些報告,當有這個問題。這是視圖和表值函數中的錯誤。

然而,你可以實現一個執行你的SELECT語句的存儲過程。然後,您可以使用過程的參數來實現您的過濾器。

這個黑客意味着你不能通過dacpac部署你的項目,只能通過腳本。

很差MS,很可憐確實

2

我想我有同樣的問題,但下面的第4步清除它。我第一次忘記了,留在變量引用中!清除該字段可讓我的項目正確構建...

一種可能的解決方案是將數據庫引用添加到包含缺少對象的數據庫。該參考需要一個數據層應用程序(dacpac文件),該數據層應用程序可以在具有缺失對象的數據庫項目的解決方案上輕鬆生成。在數據庫項目上按下鼠標右鍵並選擇Snapshot Project。 dacpac文件是在快照文件夾中創建的。然後該文件應該被複制到一個通用文件夾以便重用。

在出現錯誤的項目中,在參考文獻和選定的添加數據庫參考上按鼠標右鍵。出現添加數據庫引用對話框: 1.選擇dacpac文件 2.選擇數據庫位置。最常見的選項是「不同的數據庫,相同的服務器」 3.確認數據庫名稱字段符合預期 4.清除對話框中的「數據庫變量」字段。如果此字段有值,則查詢必須使用此變量而不是數據庫名稱

+0

這需要至少構建一次數據庫。 由於數據庫項目無法構建,因此無法創建dacpac。 雞和雞蛋。 – Dementic