gpt4 book ai didi

sql - @@ROWCOUNT 检查未检测到零行数

转载 作者:行者123 更新时间:2023-12-02 00:22:34 27 4
gpt4 key购买 nike

我有一个 SQL Server 存储过程(使用 SQL Server 2008 R2),它执行多个不同的表更新。更新行后,我想在审核表中记录信息。

这是我的伪代码:

UPDATE tblName SET flag = 'Y' WHERE flag = 'N'

IF @@ROWCOUNT > 0
BEGIN
INSERT INTO auditTable...etc
END

不幸的是,即使更新了零行,它仍然会在审核表中记录操作。

注意:正在更新的表上没有相关触发器。

有什么想法为什么会发生这种情况吗?

最佳答案

在 T-SQL 中执行的任何语句都会设置 @@rowcount,甚至是 if 语句,因此一般规则是捕获语句中的值按照您感兴趣的声明进行操作。

之后

update table set ....

你想要

Select @mycount = @@Rowcount

然后您使用该值来进行流量控制或消息。

As the docs state ,即使是简单的变量赋值也会将 @@rowcount 设置为 1。

这就是为什么在这种情况下,如果您希望人们诊断问题,那么您需要提供实际代码,而不是伪代码,这一点很重要。

关于sql - @@ROWCOUNT 检查未检测到零行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24585672/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com