我已经将数据库导入到数据库项目中并直接从bat中获取了200多个关于未解析引用的错误。现在我已经阅读了几个这样的帖子和网站(http://blogs.msdn.com/b/bahill/archive/2009/08/26/using-self-referencing-or-local-3-part-names.aspx),其原因将是3部分名称。
解决方案是右键单击数据库项目>重构>重命名服务器/数据库引用。然而,我的窗口与前面提到的网站的窗口不同,下拉菜单是空的。我正在使用带有SSDT 2010的Visual Studio 2010 Professional。对于如何解决此问题的任何帮助表示赞赏。
我需要导入大约20到30个数据库,并且手动纠正所有这些错误几乎是不可能的。
答案 0 :(得分: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
答案 1 :(得分:2)
我以为我遇到了同样的问题,但是在第4步之后就清除了它。我先忘了并留在变量参考中!清除字段让我的项目正确构建...
可能的解决方案是向具有缺少对象的数据库添加数据库引用。该引用需要一个数据层应用程序(dacpac文件),该数据层应用程序可以在具有缺少对象的数据库项目的解决方案上轻松生成。在数据库项目上按鼠标右键,然后选择Snapshot Project。 dacpac文件在Snapshots文件夹上创建。然后应将该文件复制到公共文件夹以便重新使用。
在出现错误的项目中,在“引用”上单击鼠标右键,然后选择“添加数据库引用”。出现“添加数据库引用”对话框 1.选择dacpac文件 2.选择数据库位置。最常见的选项是"不同的数据库,相同的服务器" 3.确认数据库名称字段符合预期 4.清除"数据库变量"对话框中的字段。如果此字段具有值,则查询必须使用此变量而不是数据库名称