从动态SQL创建动态表
首先,我使用的是ms SQL server 2012。我正在尝试使用一个基于字符串值的表,该字符串值作为字符串传递到过程中。我发现在编写查询时不能使用字符串作为表名,所以我正试图找到一种解决方法。我唯一的线索是使用动态SQL,我也不知道如何使用它。以下是我所拥有的:从动态SQL创建动态表,sql,sql-server,Sql,Sql Server,首先,我使用的是ms SQL server 2012。我正在尝试使用一个基于字符串值的表,该字符串值作为字符串传递到过程中。我发现在编写查询时不能使用字符串作为表名,所以我正试图找到一种解决方法。我唯一的线索是使用动态SQL,我也不知道如何使用它。以下是我所拥有的: DECLARE @q AS NVARCHAR(MAX) SET @q = 'SELECT * FROM ' + @tableName DECLARE #tableCopy AS EXECUTE(@q) 如何将已执行的@q放入#ta
DECLARE @q AS NVARCHAR(MAX)
SET @q = 'SELECT * FROM ' + @tableName
DECLARE #tableCopy AS EXECUTE(@q)
如何将已执行的@q放入#tableCopy?或者,当我只知道表名为字符串时,有没有更好的方法访问我的表?您可以创建临时表,然后在动态sql中插入到该表中。这里有一个例子: 不幸的是,您需要知道模式。以下操作不起作用:
@HLGEM我需要使用一个表,其中一个存储值是JSON。因此,我需要创建一个临时表,将JSON值与其余数据一起作为一个表进行查看。这是原型代码,但很好知道。谢谢你,先生,你告诉了我动态sql的方法,我不会忘记它。
declare @query varchar(max) =
'select * into #t from table'
EXEC(@query)
select * FROM #t