私は次のSQLを持っています
INSERT INTO [dbo].[table1] ([val1], [val2])
OUTPUT INSERTED.*
VALUES (@val1, @val2)
出力された行を読み取るSqlCommand.ExecuteReader()
を取得するために使用します。SqlDataReader
パラメータが正しい場合、すべて正常に動作します。
問題は、パラメーターが満たしていない制約がテーブルにある場合に始まります。次に例を示します。
ALTER TABLE [dbo].[table1]
ADD CONSTRAINT [chk_table1_distinct_values]
CHECK (val1 <> val2)
val1 と val2 に同じ値を指定してコマンドを実行すると、リーダーは黙って失敗します。私にできることはSqlDataReader.HasRows
、 を返すプロパティをチェックすることだけですfalse
。
だから私の質問は、返されたからより具体的なエラーを取得するにはどうすればよいSqlDataReader
ですか?