2013-06-21 75 views
0

將查詢結果用作select語句的表名的任何方法。我嘗試下面的查詢@tblname是僅僅指剛中的結果不是字符串結果,我需要:將結果用作mssql中select語句的表名稱

declare @tblname varchar(50) 
declare @sql nvarchar(1000) 
declare @stand varchar(20) 
set @stand = 'test' 
set @sql = 'select @temp=atbl.table_name from test_products wap inner join attribute_tables atbl on (atbl.id = wap.colors_tbl_id) where wap.dept = @stand' 
execute sp_executesql @sql, N'@stand nvarchar(20),@temp nvarchar(50) OUTPUT', @[email protected], @temp = @tblname OUTPUT 
declare @test nvarchar(30) 
set @test = @tblname 
set @sql = 'SELECT * FROM @tblname' 
execute(@sql) 

回答

1

您需要連擊 SQL字符串:

... 
set @sql = 'SELECT * FROM ' + @tblname 
execute(@sql) 

表名,以及列名不能被參數化。

+0

美妙的,正是我需要的信息。在線文檔有一樣的信息,所以像這樣的東西很難得到。謝謝。 –