0

C#ストアドプロシージャとSQL DB全般に関するちょっとした質問:C#からストアドプロシージャに変数値を渡す場合、次のようなことがあります。

INSERT INTO tablename (column1 name, column2 name, column3 name, columnN name) 
VALUES (@the actual values1, @values2, @valueN);

また、列名がなく、値のみが入力されている場合もあります...次のように入力するとどうなりますか(テーブルに「bob」、「ash」、「will」という3つの列があると仮定します)。

INSERT INTO tablename (bob, will) VALUES ("hi","hello");
 OR 
INSERT INTO tablename (bob, will) VALUES ("hi","hello","okay"); 
OR 
INSERT INTO tablename (bob, will) VALUES ("hello");

エントリーにどのように影響しますか?

4

4 に答える 4

1

最初のクエリはデフォルト値をに挿入しash、他の2つは解析しません。

于 2012-06-06T13:11:47.600 に答える
1

QuassnoiとMarcoが指摘したように、SQL側のエラーの懸念。

C#でデバッグしているときに、次のエラーが発生します。

INSERTステートメントには、VALUES句で指定された値よりも少ない列があります。VALUES句の値の数は、INSERTステートメントで指定された列の数と一致する必要があります。

于 2012-06-06T13:16:41.133 に答える
0

最初のクエリは、そのレコードを正しく挿入します(主キー違反がない場合)。
3つの値と2つのフィールドがあるため、2番目のクエリは失敗します。
2つのフィールドに1つの値があるため、3番目のクエリは失敗します。

于 2012-06-06T13:12:46.197 に答える
0

SQLでは、最初のクエリは正常に実行されますが、2番目のクエリでは、次のエラーが発生します。INSERTステートメントの列がVALUES句で指定された値よりも少ない。VALUES句の値の数は、INSERTステートメントで指定された列の数と一致する必要があります。3番目のクエリでも次のエラーが発生します。INSERTステートメントには、VALUES句で指定された値よりも多くの列があります。VALUES句の値の数は、INSERTステートメントで指定された列の数と一致する必要があります。

于 2012-06-06T13:45:44.367 に答える