使用 Visual Studio 2008 数据库项目 GDR2 时出现“模型已有元素”错误 (TSD04105)

Posted

技术标签:

【中文标题】使用 Visual Studio 2008 数据库项目 GDR2 时出现“模型已有元素”错误 (TSD04105)【英文标题】:"Model already has an element" errors (TSD04105) when using Visual Studio 2008 Database Project GDR2 【发布时间】:2010-07-20 21:08:44 【问题描述】:

我正在使用 Visual Studio 2008 数据库项目 GDR2 来管理多个数据库,但我遇到了许多与同义词相关的错误。

Project-A 引用了 Project-B,因为 Project-A 与 Project-B 中的表有许多同义词。我得到的完整错误是“TSD04105:模型已经有一个同名的元素 dbo.[OBJECT]”。这总是指向同义词。

问题似乎是 Project-A 上的同义词与 Project-B 上的表同名。显然,我可以重命名我所有的同义词,使它们的名称与表格不同,但这为我带来了很多工作(到目前为止,有超过 140 个同义词)。

删除对 Project-B 的引用将消除该错误,但我在 Project-A 中的所有存储过程都会产生错误,因为它无法再引用 Project-B 中的表。

除了重命名所有同义词之外,有没有办法解决这个问题?在数据库项目中处理这种情况的适当方法是什么?

【问题讨论】:

【参考方案1】:

我在 2008 年的服务器项目和数据库项目之间遇到了这个问题,我通过使用文字数据库变量值解决了这个问题。

引用项目属性 -> 引用选项卡 -> 数据库变量值

我想说您也可以使用数据库变量名称/值对。

【讨论】:

【参考方案2】:

在我以前的雇主,我们在每个项目前加上项目类型。

syn_BeerName    
vw_BeerName
tblBeerName

通常是 view 的同义词,view to table。

【讨论】:

以上是关于使用 Visual Studio 2008 数据库项目 GDR2 时出现“模型已有元素”错误 (TSD04105)的主要内容,如果未能解决你的问题,请参考以下文章

无法再使用 Visual Studio 2008 连接到 Visual Studio Team Services

将 SQLite 与 Visual Studio 2008 和 Silverlight 一起使用

如何在 Visual Studio 2010 中使用 Visual Studio 2008 创建的 DLL?

从 Visual Studio 2008 升级到 Visual Studio 2010 速成版

Visual Studio 2008 数据库项目部署基线

我可以在 Visual Studio 2008 中使用 Visual Studio 6 编译的 C++ 静态库吗?