【发布时间】:2013-10-22 00:24:49
【问题描述】:
是否有人已经遇到过这种错误,例如存储过程引发错误但客户端(vb.net)没有捕捉到错误?
下面是我从 vb.net 调用存储过程的代码
Try
Dim exec_refreshdependentviews As String = String.Format("EXEC REFRESHDEPENDENTVIEWS '{0}', '{1}', {2} ", tableName, usercode, isCreateNew)
Using refreshCommand As New SqlClient.SqlCommand(exec_refreshdependentviews, DirectCast(sqlTransaction.Connection, SqlClient.SqlConnection), DirectCast(sqlTransaction, SqlClient.SqlTransaction))
refreshCommand.ExecuteNonQuery()
End Using
Catch exc As SqlClient.SqlException
Throw New Exception("REFRESHDEPENDENTVIEWS", exc)
Catch ex As Exception
Throw New Exception("REFRESHDEPENDENTVIEWS", ex)
End Try
在存储过程中我引发了一个错误,其消息来自 SP 内部遇到的累积错误。
RAISERROR (@Errors, 16, 1)
请注意@Errors 有一个值。
当我尝试通过后端运行脚本时,我可以在消息选项卡中看到错误消息。
EXEC RefreshDependentViews 'CustomerSalesOrder', 'admin', 1
以下是累积的错误信息。
消息 50000,级别 16,状态 6,过程 RefreshDependentViews,行 216 无效的对象名称“dbo._Merged_SalesOrder_with_Details”。消息 50000,级别 16,状态 1,过程 RefreshDependentViews,第 216 行 无效的对象名称“Hips54.dbo.SupplierPurchaseReceiptDetailView”。 消息 50000,级别 16,状态 1,过程 RefreshDependentViews,行 299 运行 RefreshDependentViews CustomerSalesOrder 时出错:未能 SP_REFRESHVIEW _Merged_SalesOrder_。消息:无效的对象名称 'dbo._Merged_SalesOrder_with_Details'。错误运行 RefreshDependentViews CustomerSalesOrder:SP_REFRESHVIEW 失败 _SOG_新。消息:无效的对象名称“Hips54.dbo.SupplierPurchaseReceiptDetailView”。
上述错误没有被 vb.net 中的 try-catch 捕获。这就像我的 SP 中没有引发错误
【问题讨论】:
-
RAISERROR在 SP 中的哪个位置? -
显示您的 SP 代码。如果 SP 抛出一个错误,VB.NET 将捕获该错误。
标签: vb.net sql-server-2008 try-catch raiseerror