我有一张桌子
DECLARE @Results TABLE(QueryIndex smallint, FieldValue nvarchar(50))
QueryIndex是一个循环计数器,它将从@QueryIndex获取值。 FieldValue将从另一个SQL String获取值。出于某种原因,我需要动态执行SQL字符串。
SET @SQL = "SELECT " + @FieldName + " FROM MyView"
+ " WHERE Condition1='" + @Value1 + "'"
+ " AND Condition2=" + CONVERT(nvarchar(12),@Value2)
现在我尝试将数据插入@Results
NSERT INTO @Results(QueryIndex, FieldValue)
SELECT @QueryIndex, EXEC (@SQL)
毫不奇怪,这段代码不起作用。请提供我将数据插入表格的解决方案。任何方法都值得一试。 表中的结果应该是这样的:
QueryIndex FieldName
1 First
2 Second
3 Third
感谢。
答案 0 :(得分:3)
您需要将@QueryIndex
的检索与选择结合起来,然后您可以简单地
SET @SQL = 'SELECT ' + cast(@QueryIndex as varchar(16)) + ',' + @FieldName + ...
INSERT INTO @Results(QueryIndex, FieldValue)
EXEC (@SQL)
答案 1 :(得分:1)
你应该创建包含表的结构 - 之前!
CREATE TABLE #tmp // or @tbl... doesnt really matter...
(
...
)
INSERT INTO #tmp -- if we use exec we must have the pre-Structure of the table
EXEC (@sql)
现在,您是否想要使用#tmp
....