2

私はテーブルを持っています

DECLARE @Results TABLE(QueryIndex smallint, FieldValue nvarchar(50))

QueryIndex はループ カウンターで、@QueryIndex から値を取得します。FieldValue は別の SQL 文字列から値を取得します。何らかの理由で、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

ありがとう。

4

2 に答える 2

3

@QueryIndexの取得と選択を組み合わせる必要があります。そうすれば、簡単にできます。

SET @SQL = 'SELECT ' + cast(@QueryIndex as varchar(16)) + ',' + @FieldName + ...
INSERT INTO @Results(QueryIndex, FieldValue)
   EXEC (@SQL)
于 2012-05-02T10:46:23.377 に答える
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....

于 2012-05-02T10:40:29.873 に答える