为什么我会受到额外影响(1 行受到影响)

问题描述 投票:0回答:3

我正在更新 sql server 表并只更新一条记录。但是我多次收到消息(1 行受影响),为什么会这样? 我的查询是:

UPDATE V2HRMS.dbo.tbl_pm_employee
    SET LeavingDate='06-26-2013'
       ,Status=1 
WHERE EmployeeCode=3407

这只是我的知识。

sql sql-server sql-server-2008-r2
3个回答
6
投票

这通常意味着您已打开

actual execution plan option
。执行计划作为额外的行集发送,从而导致额外(1 行受影响) 消息

要禁用

actual execution plan
,请按 Ctrl+M


6
投票

我认为您的表上定义了一些触发器,请尝试执行以下语句以查看您的表上是否定义了任何触发器:

SELECT SO.NAME, SC.[text]
FROM sysobjects SO INNER JOIN  syscomments SC
ON SO.ID = SC.ID
WHERE SO.[type] = 'TR'
AND SC.[text] LIKE '%tbl_pm_employee%'

找到触发器后,如果您不希望它在更新表时执行,请使用以下语句禁用和启用它:

禁用触发器

DISABLE TRIGGER tr_Triggername ON tbl_pm_employee;

在这里进行更新

启用触发器

ENABLE TRIGGER tr_Triggername ON tbl_pm_employee;

2
投票

您的表附加了一个触发器,因此每当您触发更新语句时,触发器也会被触发,因此您会收到一条额外的消息。

© www.soinside.com 2019 - 2024. All rights reserved.