我尝试运行多个SELECT
命令,这些命令从不同的数据库中选择相同的列集,并且希望只需将列列为一个变量,然后为SELECT调用该列。
它目前是如何完成的,但列数和列数要少得多;选择:
SELECT Column1
,Column2
,Column3
FROM [db1]
--Processes
SELECT Column1
,Column2
,Column3
FROM [db2]
--Processes
SELECT Column1
,Column2
,Column3
FROM [db3]
--Processes
我希望能够开展工作的想法:
DECLARE @ListofColumns VARCHAR;
SET @ListofColumns = 'Column1,Column2,Column3';
SELECT @ListofColumns
FROM [db1]
--Processes
SELECT @ListofColumns
FROM [db2]
--Processes
SELECT @ListofColumns
FROM [db3]
--Processes
答案 0 :(得分:1)
你需要在这里使用动态sql ......
DECLARE @ListofColumns VARCHAR(1000) --<-- Define length here
,@SQL NVarchar(MAX);
SET @ListofColumns = 'Column1,Column2,Column3';
SET @SQL = N'SELECT ' + @ListofColumns + N' FROM [db1]'
exec sp_executesql @SQL