从动态SQL创建动态表

时间:2013-07-25 18:33:58

标签: sql sql-server

首先,我正在使用ms SQL server 2012.我试图使用基于作为字符串传入的字符串值的表进入过程。我发现在编写查询时你不能使用字符串是表名,所以我试图找到解决方法。我唯一的领导是使用动态SQL,我也不知道如何工作。这就是我所拥有的:

DECLARE @q AS NVARCHAR(MAX)
SET @q = 'SELECT * FROM ' + @tableName
DECLARE #tableCopy AS EXECUTE(@q)

如何将执行的@q导入#tableCopy?或者,当我所知道的是表名作为字符串时,是否有更好的方法来访问我的表?

1 个答案:

答案 0 :(得分:0)

您可以创建临时表,然后在动态sql中插入该表。这里有一个例子: http://smehrozalam.wordpress.com/2009/10/14/t-sql-using-result-of-a-dynamic-sql-query-in-a-variable-or-table/

不幸的是,您需要了解架构。以下工作:

declare @query varchar(max) = 
'select * into #t from table'
EXEC(@query) 
select * FROM #t