【问题标题】:Why am I seeing multiple sets of records updated?为什么我看到多组记录已更新?
【发布时间】:2015-11-02 21:36:15
【问题描述】:

我正在运行一个简单的更新查询:

update mtvnpm..tb_appraisalyeargroup
set annuallockstatus = 1 where appraisalyear < 2015 and annuallockstatus = 0

看到这个结果:

(43 row(s) affected)

(1 row(s) affected)

我最近确实在表中添加了一个触发器,但不是这个。我不能确定时间,但似乎自从我在另一张表上添加触发器以来,我已经看到了额外的“(1 行受影响)”。

我检查了三次,但这里没有更新表上的触发器。如上所述,我最近在其他一些更新中也看到了这一点,这些更新也出现在没有触发器的表上。

我怎样才能知道这是从哪里来的?

【问题讨论】:

  • 您确定该表上没有触发器吗?这会返回什么? select * from mtvnpm.sys.triggers tr join mtvnpm.sys.tables t on t.object_id = tr.parent_id where t.name = 'tb_appraisalyeargroup'
  • 您还可以在运行该查询时检查执行计划。

标签: sql-server triggers sql-update


【解决方案1】:

在 Management Studio 中启用“包括实际执行计划”将导致返回额外的“1 行受影响”消息。这是因为查询计划是作为第二个数据集中的一行 XML 数据返回的。

【讨论】:

  • 这实际上更像是一个评论而不是一个答案,但我不记得允许发表评论的愚蠢要求是什么。
  • 谢谢。不要以为我就是这种情况,但很高兴知道还有其他原因可能导致这种情况。
猜你喜欢
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多