1

我正在编写一个查询,该查询基本上将 EstimatedDepartureDate 的所有日期字段更新为指定日期。我正在使用我创建的视图来提取帐户列表以更新并针对包含所有员工记录的 tnpEmployee 表运行它。但是,在运行此查询时,它始终具有类似于以下内容的输出:

(1 行受影响)

(55 行受影响)

例如,它首先影响一行,然后影响其余的行。当我在我创建的视图中运行 SQL 以查看感兴趣的人员列表时,每次运行查询时它会减少一条记录,并且在该底部(受影响的 55 行)中减少一条记录),因此下一次运行将显示 54。

这是我正在运行的查询:

UPDATE tnpEmployee 
SET tnpEmployee.EstimatedDepartureDate='2014-04-01 13:37:43.000'
FROM tnpEmployee
INNER JOIN vnpGetActiveAccountsAgainstToBeDisabled
ON tnpEmployee.EmployeeID=vnpGetActiveAccountsAgainstToBeDisabled.EmployeeID
WHERE tnpEmployee.Email=vnpGetActiveAccountsAgainstToBeDisabled.Email

任何帮助将不胜感激,它正在杀死我!所需要做的就是让行设置该日期字段,仅此而已,它们应该都填充在我创建的非常基本的视图中,而不是每次运行时都少一个。此外,当我运行该视图并减少一条记录时,所有记录都已更新为新日期..

4

1 回答 1

0

您可以尝试重写您的 SQL 语句:

UPDATE tnpEmployee 
SET tnpEmployee.EstimatedDepartureDate='2014-04-01 13:37:43.000'
WHERE tnpEmployee.EmployeeID IN (
SELECT vnpGetActiveAccountsAgainstToBeDisabled.EmployeeID
FROM vnpGetActiveAccountsAgainstToBeDisabled
WHERE tnpEmployee.Email=vnpGetActiveAccountsAgainstToBeDisabled.Email
);

正如专家已经建议的那样,您的结果看起来像是您的查询调用了触发器。

于 2013-04-02T22:33:53.443 回答