我正在执行删除历史数据作为SQL服务器作业的日常任务。如何打印每次运行中受影响的行数?
这是我感兴趣的工作的第一步(将实际的数据库名称替换为“ Database_Name_Here”)
Print CAST(GETDATE() as Datetime2 (3) )
DECLARE @Deleted_Rows_1 INT;
SET @Deleted_Rows_1 = 1;
WHILE (@Deleted_Rows_1 > 0)
BEGIN
BEGIN TRANSACTION
delete top (1000) FROM [Database_Name_Here].[dbo].[SESSION_LOG]
where start_timestamp < DATEADD(MONTH, -22, GETDATE())
SET @Deleted_Rows_1 = @@ROWCOUNT;
COMMIT TRANSACTION
CHECKPOINT
END
如果从SSMS运行它,则可以在消息中看到此信息: (受影响的1020行) DBCC执行完成。如果DBCC打印了错误消息,请与系统管理员联系。