1

在 2005+ 版本的 SQL Server 中处理错误的首选方法是什么?那么 2005 年之前的版本呢?

我正在处理一些较旧的 T-SQL 代码,并且到处都可以找到这个表达式:

SELECT CustomerID FROM Customers WHERE CustomerNumber = @customer_number

SET @ERR = @@Error
IF @ERR <> 0 
RETURN @ERR

假设 CustomerID 是一个 int。这似乎是一个不好的做法。你怎么知道你是否得到了一个 ID 或一个错误 # ?在我看来 RAISEERROR 是更好的路径。如果这看起来很基本,请原谅我 - 我已经有一段时间没有处理过旧的 procs 了。

4

1 回答 1

2

因为 CustomerId 将在 Tabular Data Stream (TDS) Resultset中返回,而错误号作为函数调用的返回值返回。无论您使用什么数据库访问技术(ODBC、ADO、ADO.Net 等),这两个东西都是返回数据包的不同部分,每一个都需要特定的、不同的客户端语法来访问。

于 2013-06-07T18:42:04.863 回答