SQL 使用从 select 语句中提取的数据库名称的语句

SQL Statement using Database name pulled from a select statement

这是我的场景 ParentDB 有 table 和 JournalDB 名称(我有 select 到 return 最新的 JournalDB 名称)

JournalDBName = select top 1 DBName from ParentDB.dbo.JournalNames order by ObjectID desc

尝试 运行 第二个 Select 语句,我可以在其中“使用” JournalDBName 类似于

USE "JournalDBName"
select  
Data1,
Data2,
from JournalRecordLog

我坚持将“USE”的 JournalDBName 传递给第二个语句。

感谢任何帮助

您需要使用动态 SQL:

DECLARE @db   sysname, 
        @exec nvarchar(1000),
        @sql  nvarchar(max);

SELECT TOP (1) @db = DBName 
  FROM ParentDB.dbo.JournalNames 
  ORDER BY ObjectID DESC;

SET @exec = QUOTENAME(@db) + N'.sys.sp_executesql';

SET @sql = N'SELECT Data1, Data2 FROM dbo.JournalRecordLog;';

EXEC @exec @sql;