SQL数据库项目问题中的同义词
Posted
技术标签:
【中文标题】SQL数据库项目问题中的同义词【英文标题】:Synonyms in SQL database project problems 【发布时间】: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 开心看起来就像是在摇尾巴,不是吗? 【参考方案1】:找到了他们所说的博客。微软没有为dbproject中的循环引用提供解决方案。
MSDN 论坛中建议的各种解决方法远非理想:
1) 创建第三个数据库项目并包含需要的对象 循环引用
2) 使用静态 .dbschema 文件管理引用
Source Blog
【讨论】:
对于大多数此类项目来说,添加 DBSchema 引用确实不是那么麻烦。如果您不是从零开始构建数据库,您将很少看到问题。不过,如果可以的话,我强烈建议您在较旧的 DB 项目上切换到 SSDT。 Dacpac DB 引用占用的空间更少,工作速度更快。以上是关于SQL数据库项目问题中的同义词的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 数据库项目无法通过同义词创建视图
推荐系统[九]项目技术细节讲解z2:搜索Query理解[Term WeightQuery 改写同义词扩写]和语义召回技术