【问题标题】:Database Project on TFS using synonym to another databaseTFS 上的数据库项目使用另一个数据库的同义词
【发布时间】:2017-06-20 02:05:53
【问题描述】:

我有一个使用 Visual Studio 2015 在 TFS 上的数据库项目。 在我的项目中,我创建了一个同义词,指向同一服务器上的另一个数据库。当我尝试编译项目时,它告诉我有一个指向同义词对象的未解析引用。

我该如何处理才能编译 TFS?

我查看了这个链接:Visual Studio 2010 Database Project - Unresolved Reference to a Synonym

但看起来只有当我们在同一个解决方案上有两个或多个项目时,这才有效。就我而言,我有不同的数据库项目,所以当我尝试编译时出现此错误:

[dbo].[ProviderContact].[ProviderUserId] 包含对对象的未解析引用。 对象不存在或引用不明确,因为它可能引用以下任何对象:[dbo].[LookupUser].[u]::[UserId], [dbo].[LookupUser].[UserId] 或 [dbo].[UserProviderRelation].[u]::[UserId].

引用同义词 (dbo.LookupUser) 的视图是这样的:

CREATE VIEW [dbo].[ProviderContact]
AS
    SELECT upr.Id, upr.Name, u.Description, u.UserId AS ProviderUserId, 
      FROM dbo.UserProviderRelation AS upr 
     INNER JOIN dbo.LookupUser AS u 
        ON upr.UserId = u.UserId
     WHERE (u.UserTypeId = 1)
GO

同义词是这样的:

CREATE SYNONYM [dbo].[LookupUser] FOR [AnotherDB].[dbo].[Users]
GO

同义词在另一个数据库中,但在同一台服务器上。

当我打开添加数据库引用时...我看到了:

所以我不能添加参考。在这种情况下如何解决引用?

【问题讨论】:

  • 应该是数据库参考问题,能否提供重现问题的详细步骤?你也可以看看这个question,也许有帮助。
  • 您可以尝试为“另一个”数据库创建一个 DACPAC 文件,然后将数据库引用添加到您的项目,详情请查看this 链接。

标签: sql-server visual-studio tfs


【解决方案1】:

很抱歉听到您遇到此问题。我来到这里是因为我有一个与 4 符号类似的问题。

对于 VS2017,您的问题似乎不成立。不同的数据库相同的服务器。

尽管这样,我在项目中使用了一个变量。

为 [$(Serverdb)].[$(Anothedb)].[dbo].[Users] 创建同义词 [dbo].[LookupUser]

如果您在使用 VS 中的项目定义设置变量时需要帮助,请告诉我。

狮子座

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 2018-08-12
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多