最近我注意到有趣的行为.
当使用SqlCommand.ExecuteScalar()运行MS SQL存储过程时,我的应用程序似乎完全不知道在SELECT完成后出现的任何SQL错误或PRINT .
最可能的解释是,在任何SELECT结果出现后立即向C#提供流控制,而不等待存储过程完成(尽管存储过程继续在下面静默执行).
显而易见的优势是性能提升(无需等待,因为结果已经知道),遗憾的是C#app并不知道在此之后可能发生的任何SQL异常.
有谁可以证实我的解释?这种行为会被改变吗?
.net c# sql-server executescalar
.net ×1
c# ×1
executescalar ×1
sql-server ×1