有没有办法在 SQL 服务器数据库项目的引用数据库中使用实际数据库名称作为数据库变量名称?

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 服务器数据库项目的引用时,在查询代码中引用该数据库的方法是通过数据库变量名称,它是符号 $(ReferencedDatabaseName ):

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

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

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

SELECT Field1, Field2
FROM ReferencedDatabaseName.SchemaName.ObjectName

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

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

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

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

存在导致数据库变量名称此后为空的错误。

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

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