c# - 我应该在 T-SQL 中进行错误处理吗?

标签 c# .net sql-server tsql

作为开发人员,错误处理和 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/

相关文章:

c# - 将间接引用的程序集复制到输出目录 - 缺少程序集

c# - 文本和复选框之间的空间

sql-server - SQL Server : Cannot grant, 拒绝或撤销对 sa、dbo、实体所有者、information_schema、sys 或您自己的权限

sql-server - sql azure 中的审核触发器

c# - 如何在 .Net 应用程序中使用区域时区?

c# - 如果缓冲区太小,是否可以防止异常?

.net - 在 wpf 中,如何使用标准对话框来选择目录

sql - 获取SqlException,超时错误

c# - Google Drive API 上传/创建文件 (.NET)

c# - foreach-if-statement with/L​​inq 条件给出意想不到的结果