问题描述
我相当简单的存储过程在第44行上完成了此操作
IF @a = @b
RAISERROR('blah blah blah',11,1)
RETURN
使用.NET Framework System.Data.sqlClient
库在客户端调用存储过程:
try
{
sqlCommand c = new sqlCommand();
c.CommandType = CommandType.StoredProcedure;
c.CommandText = "procname";
c.ExecuteNonQuery() // execute the stored procedure
}
catch(sqlException sex)
throw sex;
catch(Exception ex)
{
throw ex;
}
捕获ex
时,其值为blah blah blah
+ CRLF + 1259
1259
来自哪里?它对应于严重性11吗?
解决方法
啊哈!刚发现。在RAISERROR上方的几行中有一个PRINT
语句。不知道(无关)PRINT语句会附加到错误消息!
PRINT 'Fee fie fo fum'
<snip>
if @a = @b
RAISERROR('blah blah blah',11,1)
return
客户端的SqlException消息属性是“等等等等” + CRLF +“费用当即”