我有一个临时表,其中包含一个TableName列。我想循环遍历临时表并选择表中的所有内容(其中table是临时表中的TableName列)。
我一直在浏览以下链接和相关链接,但我无法根据自己的需要进行调整。非常感谢任何帮助。
我正在使用SQL Server 2014
我试过的东西
声明@id int 什么时候出现(SELECT * FROM ## tt_tableList) 开始 从## tt_tableList
中选择Top 1 @id = Id-- Do the work --
declare @query nvarchar(max)
set @query = 'Select * from (select TableName from ##tt_tablelist where id = '' +Cast(@id as nvarchar(50))+'')'
select @query
declare @tableName nvarchar(50)
set @tableName = (select TableName from ##tt_tableList where id = @id)
select @tableName
execute(@query)
-- Scrap the ID and Move On --
Delete ##tt_tableList where ID = @id
END
答案 0 :(得分:1)
如果我理解正确,这就是你要求的:
DECLARE @tbl table (TableName varchar(50))
insert into @tbl values ('SomeTableName')
insert into @tbl values ('AnotherTableName')
DECLARE @Tables VARCHAR(8000)
SELECT @Tables = COALESCE(@Tables + CHAR(13), '') + 'SELECT * FROM '+ TableName
FROM @tbl
exec(@Tables)
只需在@tbl
中插入您的表名答案 1 :(得分:0)
我根据我们其中一个堆栈overflower的回答尝试了这个,并且它有效。
DECLARE @Tables VARCHAR(8000)
SELECT @Tables = COALESCE(@Tables + CHAR(13), '') + 'SELECT * FROM '+ TableName + ' Where Event like ''%CM_Manual_Change%'''
FROM ##tt_tableList
select @Tables
exec(@Tables)