【发布时间】:2011-06-12 13:12:49
【问题描述】:
我有以下 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 中获得更具体的错误?
【问题讨论】:
标签: tsql ado.net sqldatareader sqlcommand