0

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

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

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

4

1 回答 1

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
于 2013-07-25T18:48:28.293 回答