0
sCnd =  "INSERT INTO .dbo.Table(Col1, Col2, Col3) Values (1,2,3);

using (DbCommand tempCommand2 = CommandFactory.CreateCommand(db))
{
    tempCommand2.CommandText = sCmd;
    tempCommand2.ExecuteNonQuery();
}

テーブルには、nullを許可しないCol4もあります。

エラー:列Col4に値NULLを挿入できません

Management StudioでsCmdを実行すると、すべて正常に動作します。

なぜ例外が発生するのですか?

4

3 に答える 3

2

テーブルには、nullを許可しないCol4もあります。

あなたの答えがあります。Management Studioが機能する場合は、おそらくデフォルト値が挿入されていますか?

于 2011-04-15T08:37:38.037 に答える
2

Col4例外が発生するのは、列に値を挿入していないためです。これは許可されnullsておらず、デフォルト値がないと推測できます。

しかし、あなたは間違った質問をしたようです。質問するつもりはありませんが、なぜクエリがSSMSで実行されるのですか?

その質問への答えは、あなたが含めないことを選択した実際の構文のどこかに埋もれているのではないかと思います。

于 2011-04-15T08:38:16.473 に答える
1

特に指定がない限り、列の値を指定しない場合NULLは取得されconstraintます。

AsCol4は許可されておらず、値NULLがないように見えるため、エラーが発生します。defaultconstraint

SSMSで実行しているSQLを示していませんが、別のデータベース(本番/開発)、別のテーブルだと思いますか?

于 2011-04-15T08:39:50.447 に答える