首先,我正在使用ms SQL server 2012.我试图使用基于作为字符串传入的字符串值的表进入过程。我发现在编写查询时你不能使用字符串是表名,所以我试图找到解决方法。我唯一的领导是使用动态SQL,我也不知道如何工作。这就是我所拥有的:
DECLARE @q AS NVARCHAR(MAX)
SET @q = 'SELECT * FROM ' + @tableName
DECLARE #tableCopy AS EXECUTE(@q)
如何将执行的@q导入#tableCopy?或者,当我所知道的是表名作为字符串时,是否有更好的方法来访问我的表?
答案 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