[步骤]
exec sp_executesql N'UPDATE RB_Finance_Settlement SET CheckDate = CASE WHEN UpdateTime<@CloseDate AND CAST(CONVERT(NVARCHAR(7),ShipTime,120)+''-01'' AS DATETIME)<DATEADD(MONTH,-1,CAST(CONVERT(NVARCHAR(7),UpdateTime,120)+''-01'' AS DATETIME)) THEN UpdateTime WHEN UpdateTime<@CloseDate AND CAST(CONVERT(NVARCHAR(7),ShipTime,120)+''-01'' AS DATETIME)>=DATEADD(MONTH,-1,CAST(CONVERT(NVARCHAR(7),GETDATE(),120)+''-01'' AS DATETIME)) AND CAST(CONVERT(NVARCHAR(7),ShipTime,120)+''-01'' AS DATETIME)<CAST(CONVERT(NVARCHAR(7),UpdateTime,120)+''-01'' AS DATETIME) THEN ShipTime WHEN UpdateTime<@CloseDate AND CAST(CONVERT(NVARCHAR(7),ShipTime,120)+''-01'' AS DATETIME)=CAST(CONVERT(NVARCHAR(7),GETDATE(),120)+''-01'' AS DATETIME) THEN ShipTime WHEN UpdateTime>=@CloseDate AND CAST(CONVERT(NVARCHAR(7),ShipTime,120)+''-01'' AS DATETIME)<CAST(CONVERT(NVARCHAR(7),UpdateTime,120)+''-01'' AS DATETIME) THEN UpdateTime WHEN UpdateTime>=@CloseDate AND CAST(CONVERT(NVARCHAR(7),ShipTime,120)+''-01'' AS DATETIME)=CAST(CONVERT(NVARCHAR(7),UpdateTime,120)+''-01'' AS DATETIME) THEN ShipTime ELSE CheckDate END FROM dbo.RB_Finance_Settlement(NOLOCK) WHERE UpdateTime>@RetryDate AND CustomerID=@CustomerID; ',N'@CloseDate datetime,@RetryDate datetime,@CustomerID int',@CloseDate='2025-06-03 23:59:59',@RetryDate='2025-06-06 00:00:00',@CustomerID=1


[结果]
[期望]
建议 分批次 单次 1万或者五千去处理