5

I've imported a database into a database project and straight from the bat I'm getting 200+ errors about unresolved references. Now i've read several posts and sites like this one (http://blogs.msdn.com/b/bahill/archive/2009/08/26/using-self-referencing-or-local-3-part-names.aspx) that the cause would be the 3 part names.

The solution would be to right-click the database project > refactor > rename server/database references. However my window differs from that of the earlier mentioned website and the drop down menu's are empty. I'm using Visual Studio 2010 Professional with SSDT 2010. Any help on how to go about this is appreciated.

I need to import about 20 to 30 databases and correcting all these errors by hand is pretty much out of the question.

enter image description here

4

2 回答 2

13

如果这些是针对当前数据库的,最好的办法是导入项目,然后替换“MyDBName.dbo”。与“dbo.”。如果您尝试引用其他数据库,您可能应该使用 SQLPackage 为这些数据库提取 dacpac,然后为它们添加数据库引用。添加数据库引用时,请勿选择将这些视为变量的选项,除非这些数据库的名称因环境而异。例如,如果您在项目中引用 MyDB1.dbo.Table1 并且“MyDB1”始终是该数据​​库的名称,则不应尝试使用 DB 变量。

我在我的博客上写过这个。也许这会给出一些更好的例子。

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

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

于 2013-10-03T19:08:59.477 回答
2

我以为我有同样的问题,但按照第 4 步解决了它。我首先忘记并留在了变量引用中!清除该字段让我的项目正确构建...

一种可能的解决方案是向具有缺失对象的数据库添加数据库引用。该引用需要一个数据层应用程序(dacpac 文件),该应用程序可以在解决方案上轻松生成,该解决方案具有缺少对象的数据库项目。在数据库项目上按鼠标右键并选择快照项目。dacpac 文件是在 Snapshots 文件夹中创建的。然后应将该文件复制到一个公共文件夹以供重复使用。

在出现错误的项目中,在引用上按鼠标右键并选择添加数据库引用。出现添加数据库引用对话框: 1. 选择 dacpac 文件 2. 选择数据库位置。最常见的选项是“不同的数据库,相同的服务器” 3.确认数据库名称字段与预期一致 4.清除对话框中的“数据库变量”字段。如果此字段具有值,则查询必须使用此变量而不是数据库名称

于 2015-03-11T17:32:29.817 回答