cod*_*000 5 t-sql sql-server-2005
在 tsql 中,我调用一个返回记录集的 tsql 存储过程。我希望能够判断记录集是否为空。
由于某种原因 @@rowcount 总是返回 1。
做这个的最好方式是什么?
另一件事是我无法编辑这个存储过程。
在内部存储过程中使用@@rowcount,作为输出参数传回。在内部存储过程中的 SELECT 之后立即使用@@rowcount 。并像这样调用:
EXEC dbo.InnerProc @p1, ..., @rtncount OUTPUT
Run Code Online (Sandbox Code Playgroud)
或者...
在 SELECT 之后立即在内部存储过程中使用 RETURN @@rowcount 。并像这样调用:
EXEC @rtncount = dbo.InnerProc @p1, ...
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您无法编辑过程,则必须加载临时表并对其进行操作。
CREATE TABLE #foo (bar int...)
INSERT #foo
EXEC MyUntouchableProc @p1
SELECT @@ROWCOUNT
Run Code Online (Sandbox Code Playgroud)
@@ROWCOUNT 失败,因为它只显示最后一个语句计数,而不是最后一个 SELECT。它可以是 RETURN、END(在某些情况下)、SET 等
| 归档时间: |
|
| 查看次数: |
15382 次 |
| 最近记录: |