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

时间:2013-12-26 12:52:53

标签: sql sql-server sql-server-2008-r2

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

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

这只是为了我所知。

3 个答案:

答案 0 :(得分:5)

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

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

DISABLE TRIGGER tr_Triggername ON tbl_pm_employee;

在此处进行更新

ENABLE TRIGGER

ENABLE TRIGGER tr_Triggername ON tbl_pm_employee;

答案 1 :(得分:5)

这通常意味着您已启用actual execution plan option。执行计划作为额外的行集发送,导致额外(1行(s)受影响)消息

要停用actual execution plan,请按 Ctrl + M

答案 2 :(得分:2)

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