1

SQLServer2008を使用しています。

以下は、ストアドプロシージャの一部です。@ Param1-> @ Param6は、ストアドプロシージャのパラメータです。

これが私がやろうとしていることです:

INSERT INTO myTable 
VALUES (otherTableValue, @Param2, @Param3, @Param4, @Param5)
SELECT ID as otherTableValue
FROM otherTable
WHERE otherTable.Param6 = @Param6

エラーとして「無効な列名」が表示されます。私は何が間違っているのですか?

4

3 に答える 3

2

構文が間違っています。でを使用するselectには、 :の代わりにinsertを使用します。selectvalues

INSERT INTO myTable 
SELECT ID, @Param2, @Param3, @Param4, @Param5
FROM otherTable
WHERE otherTable.Param6 = @Param6
于 2012-08-09T21:57:01.113 に答える
1

一般に、列名を追加することをお勧めします...誰かがスキーマを変更した場合はどうでしょうか。

INSERT INTO myTable (ColName1, ColName2, ColName3, ColName4, ColName5)
SELECT ID,@Param2, @Param3, @Param4, @Param5
FROM otherTable
WHERE otherTable.Param6 = @Param6
于 2012-08-09T22:00:10.360 に答える
0

構文が間違っています。@Param2、@Param3 などは列名ではありません。

 INSERT INTO myTable 
 VALUES (otherTableValue, field2, field3, field4, field5)
 SELECT ID as otherTableValue, @Param2, @Param3, @Param4, @Param5
 FROM otherTable
 WHERE otherTable.Param6 = @Param6
于 2012-08-09T21:59:42.453 に答える