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;
这是我的场景 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;