Tsql 更新HumanResources.Employee表';列病假时间';一次10行(允许批量大小可变)

Tsql 更新HumanResources.Employee表';列病假时间';一次10行(允许批量大小可变),tsql,Tsql,更新人力资源。员工表“列病假时间” 我需要执行以下逻辑: 如果小时数大于或等于35,则设置为40 如果小于35,则将其设置为0。 如何打破循环 如何在SQL Server中实现这一点?谢谢。我不确定您的确切列名,但您可能需要以下内容: DECLARE @BatchSize int SET @BatchSize = 10 WHILE @@ROWCOUNT > 0 BEGIN UPDATE TOP (@BatchSize) HumanResource.Employee SET

更新人力资源。员工表“列病假时间”

我需要执行以下逻辑: 如果小时数大于或等于35,则设置为40 如果小于35,则将其设置为0。 如何打破循环


如何在SQL Server中实现这一点?谢谢。

我不确定您的确切列名,但您可能需要以下内容:

DECLARE @BatchSize int
SET @BatchSize = 10
WHILE @@ROWCOUNT > 0
BEGIN
   UPDATE TOP (@BatchSize) HumanResource.Employee
     SET SickLeaveHours = CASE WHEN SickLeaveHours >= 35 THEN 40 ELSE 0 END
   WHERE SickLeaveHours NOT IN (40,0)
END