存储过程中的良好 SQL 错误处理






2.25/5 (3投票s)
存储过程中的良好 SQL 错误处理。
在编写 SQL 存储过程时,谨慎处理错误非常重要。牢记这一点很可能会节省您的精力、时间和金钱。 我已经使用 MS-SQL 2000 和 MS-SQL 2005 (尚未有机会使用 MS-SQL 2008) 很多年了,我想与您分享我在 T-SQL 存储过程中处理错误的方法。这段代码已经运行了很多年,从未出现问题。
注意: 作为另一个“最佳实践”,我建议使用仅一个级别的 TRY
... CATCH
和 仅一个级别的 TRANSACTION
封装,因为否则可能无法保证 100% 的可靠性。
BEGIN TRANSACTION;
BEGIN TRY
-- Code in transaction go here
COMMIT TRANSACTION;
END TRY BEGIN CATCH
-- Rollback on error
ROLLBACK TRANSACTION;
-- Raise the error with the appropriate message and error severity
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int;
SELECT @ErrMsg = ERROR_MESSAGE(), @ErrSeverity = ERROR_SEVERITY();
RAISERROR(@ErrMsg, @ErrSeverity, 1);
END CATCH;
总而言之,我只想提到我已经在 .NET 2.0 和 .NET 3.5 中使用这段代码,并且它运行得非常好。 .NET TDS 解析器会抛出一个 SQLException
,这非常适合处理。
原文网址:http://sp.nitriques.com/sites/blog/Lists/Posts/Post.aspx?ID=15
类别: CodeProject
发布日期: 2009年5月7日 晚上11:22