【问题标题】:Synonyms in SQL database project problemsSQL数据库项目问题中的同义词
【发布时间】:2014-08-06 06:31:22
【问题描述】:

我在使用 Visual Studio 2012 数据库项目构建的新数据库中工作。

我有两个数据库项目。例如“DB1”和“DB2”。

DB1 have synonyms of objects from DB2 and 
DB2 have synonyms of objects from DB1.

当我在两个不同的 dbproject 中导入两个数据库时。它为使用同义词的对象抛出错误。

我从博客中了解到,一种解决方法是添加数据库项目引用。但在那种情况下,我遇到了问题

if I refer "DB1" in "DB2" then I cant refer "DB2" in "DB1".

任何帮助将不胜感激。

【问题讨论】:

  • 你读过 MSDN 上的Defining Cross-Database References
  • 为什么要这样使用同义词!?首先参考为什么使用synonyms?然后仅在适当的情况下使用它。也可以参考old post
  • Marmik,这是我们目前无法更改的旧系统。
  • Pred,感谢您的帖子。它有助于探索博客以解决我的问题。在您发送的链接中,它还谈到了无法添加循环引用的限制。
  • 我在 VS15 (2017) 中遇到了类似的问题。我有 4 个数据库项目。 DB1 和 DB2 使用同名的同义词来指向 DB3 视图。在服务器上工作正常,但问题在于 Visual Studio 无法解释它。 DB1 同义词在存储过程中起作用,但 DB2 视图在尝试引用 DB2 同义词时抛出错误。改变一个现实世界的最佳实践来让 VS 开心看起来就像是在摇尾巴,不是吗?

标签: sql sql-server database database-project


【解决方案1】:

找到了他们所说的博客。微软没有为dbproject中的循环引用提供解决方案。

MSDN 论坛中建议的各种解决方法远非理想:

1) 创建第三个数据库项目并包含需要的对象 循环引用

2) 使用静态 .dbschema 文件管理引用

Source Blog

【讨论】:

  • 对于大多数此类项目来说,添加 DBSchema 引用确实不是那么麻烦。如果您不是从零开始构建数据库,您将很少看到问题。不过,如果可以的话,我强烈建议您在较旧的 DB 项目上切换到 SSDT。 Dacpac DB 引用占用的空间更少,工作速度更快。
猜你喜欢
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
相关资源
最近更新 更多