我有一个存储过程在SQL Server 2005数据库中,其中有一个类似于这样的语句:
IF @Condition = 0
BEGIN
RAISERROR('some error message',16,1)
RETURN
END
这被称为从C#客户端调用:
try
{
SomeVariable = SqlHelper.ExecuteScalar(GetConnectionString(), "MySP", new object[] { param1, param2});
}
catch (SqlException e)
{
Console.WriteLine(e.Message);
}
然而没有任何异常被引发。存储过程中的条件在测试中始终为真。为了验证这一点,我从SQL Server Profiler中复制了调用,并在查询窗口中执行,出现了ErrorMessage,说明错误已被引发。
不确定发生了什么。