作为开发人员,错误处理和 try/catch 是我编写的代码中非常重要的部分。
但是,在 SQL Server Stored Procs 中,最好的做法是在 SP 中编写错误处理程序吗?如果没有(这似乎是常见的情况),异常是否会传播到 .NET 代码?我问这个问题是因为我觉得 T-SQL 的行为类似于 C# 错误处理。
在 T-SQL 中编写错误处理的最佳方法是什么?
最佳答案
是的,使用 TRY...CATCH
在你的 TSQL 代码中。在这种情况下,异常不会传播到客户端。
只要你使用RAISEERROR
,传播就会发生或未处理的 SQL 异常。
BEGIN TRY
SELECT Foo FROM MyLinkedServer.dbo.SomeTable; --what if the remote server is down?
DECLARE @Baz uniqueidentifier = 15/2; --oops
END TRY
BEGIN CATCH
SELECT @Baz = NEWID();
ROLLBACK TRAN;
--whatever business logic you have for handling your exception.
END CATCH
关于c# - 我应该在 T-SQL 中进行错误处理吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7654670/