【问题标题】:Is there a way to use the actual database name as the Database Variable Name in a Referenced Database of a SQL Server Database Project?有没有办法在 SQL Server 数据库项目的引用数据库中使用实际数据库名称作为数据库变量名称?
【发布时间】:2020-03-14 09:41:49
【问题描述】:

似乎当您添加另一个数据库作为对 SQL Server 数据库项目的引用时,在查询代码中引用该数据库的方法是通过数据库变量名称,即符号 $(ReferencedDatabaseName):

因此,主数据库中的查询将通过以下方式引用被引用数据库中的对象:

SELECT Field1, Field2
FROM [$(ReferencedDatabaseName)].SchemaName.ObjectName

有没有办法直接通过它的实际名称来引用数据库,例如:

SELECT Field1, Field2
FROM ReferencedDatabaseName.SchemaName.ObjectName

如果不是,这是否意味着如果我将引用其他数据库中对象的现有数据库导入我的解决方案,我需要用这个数据库变量名称表示法替换所有引用的数据库名称?

【问题讨论】:

  • 怎么做 SELECT * FROM databaseName?您只能从表/视图/函数/派生表中选择
  • 对不起,我匆忙写了最初的问题,但只是修复了它。我想针对所述引用数据库的对象进行选择,但在查询中使用实际数据库名称本身,而不是数据库变量名称表示法。

标签: sql-server visual-studio sql-server-data-tools visual-studio-2019 sql-server-data-project


【解决方案1】:

可以使用文字数据库名称。创建数据库引用时必须省略“数据库变量”字段。

有一个错误导致数据库变量名称此后为空。

您需要做的就是重新加载解决方案。

现在数据库可以通过它的实际名称来引用了。

【讨论】:

  • 谢谢你,尽管我的问题很老,但很高兴知道解决方案。 ?
【解决方案2】:

是的,除了为引用的对象创建同义词之外,这是唯一的方法。即使在这种情况下,您仍然必须使用同义词中的变量。

如果您担心用变量引用替换所有数据库名称的繁重工作,请执行 ctrl+shift+h并替换所有[数据库]。使用 [$(databasereference)]。

【讨论】:

  • 可以使用文字值作为数据库名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 2014-07-03
  • 1970-01-01
  • 2019-10-11
相关资源
最近更新 更多