我有以下 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
?