英超

深入理解SQL Server 中的错误处理(3)

2019-09-11 10:22:20来源:励志吧0次阅读

这个简单的存储过程展示了有效的错误处理必须具备的特征。首先,要明确定义一个事务。然后当一条记录插入事务表格之后,我们再检查参数@ThrowError的值。该参数显示是否有错误发生,再用函数RAISERROR来指出自定义的错误。当函数RAISERROR被调用时,变量@@ERROR的值显示的就是我们所提供错误的号码。 如果在存储过程中有错误发生,我们将重新运行所执行的事务。重新运行事务就意味着我们尝试插入事务表格的记录将会被移除,就像从来没有发生过一样。数据库的状态将与事务开始之前完全保持一致。 在这个例子中,你同样会注意到GOTO语句和ErrorHandler标签的使用。通常,使用GOTO语句在迭代编程语言中被认为是一种不好的编程习惯,但是在SQL Server 2000错误处理时,它们就非常有用了。不要害怕用GOTO语句来处理错误。 下面这个程序调用将出现错误,记录将不会被插入事务表格中: DECLARE @ReturnCode INTEXECUTE @ReturnCode = usp_TestTransaction @ParamValue = 'E', @ThrowError = 1PRINT @ReturnCode

下面这个程序调用将不会出现错误,插入的记录将被提交到事务表格: DECLARE @ReturnCode INTEXECUTE @ReturnCode = usp_TestTransaction @ParamValue = 'S', @ThrowError = 0PRINT @ReturnCode

这些程序调用利用了参数Return,它能够显示出一个存储过程的成功与否。在你的代码中明确设置参数Return,来显示程序运行是否成功是一个很好的编程习惯。这样,当存储过程失败的时候,你可以得知,并采取必要的措施来处理。例如,你可以嵌套程序调用和事务。你的应用可以潜在地定义一个事务,调用一个存储过程和提交或回滚外部事务(取决于存储过程的成败)。 放眼未来 SQL Server 2000中有效的错误处理的关键在于细致的事务设计和始终对变量@@ERROR 的值的检查。在日后的文章中,我将向你说明如何在SQL Server 2005中利用TRYCATCH语句的错误处理新能力。

晚上睡觉夜尿多怎么治
宝宝咳嗽了怎么办
小孩咳嗽厉害怎么办
宝宝病毒性发烧
分享到: