У меня есть следующий 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
?