-1

あるテーブルのデータ値を別のテーブルにコピーしているとします。

INSERT INTO T1(field_list) VALUES( SELECT field_list FROM T2 )

そして、2番目のテーブルの1つの列を挿入する代わりに、変数を提供します。それは次のようになります

INSERT INTO T1(field_list) VALUES ( SELECT field_list, @variable FROM T2 )

列数にエラーがないことを考慮して、静的テキストを提供する代わりに、変数名を提供します。

@variableを静的テキストに変更すると、機能しますが、@variableは機能しません。

その場合、@ variableを提供する方法は?

4

2 に答える 2

0

最初に @variable を宣言する必要があります

DECLARE @variable varchar(255)
SET @variable = 'myColumn'
EXECUTE (' SELECT *, ' + @variable + ' FROM myTable' )
于 2013-02-27T11:02:14.367 に答える
0
INSERT INTO T1(field_list) 
SELECT field_list, @variable FROM T2 

テーブルでnullが許可されておらず、insert intoステートメントで定義された列と同じ数の値を挿入しない限り、問題なく動作するはずです。

あなたが言ったように、変数が宣言されているので、問題にはなりません。

編集:

@Variable は、フロント エンドから渡す動的テキスト、または SP の変数に割り当てられた静的テキストです。すべての場合に機能するはずです。

INSERT INTO T1(field1,field2) SELECT field2, @variable FROM T2

于 2013-02-27T11:34:15.953 に答える