我试图在同一个查询中插入数据,然后删除。
我正在尝试分块删除它,以免导致 LOG 问题:
DECLARE @BatchSize INT
SET @BatchSize = 100000
WHILE @BatchSize <> 0
BEGIN
DELETE (@BatchSize) TABLE1
WHERE LogType = 'LOGTYPE'
AND TABLE1.Id NOT IN (SELECT Id FROM TABLE2)
AND TABLE1.Id IN (SELECT Id FROM DifferentDB..TABLE3)
SET @BatchSize = @@rowcount
END
但是同样的查询,我想先在辅助数据库中插入数据,然后再删除。
是否可以在没有触发器的情况下实现?(插入,删除...)
我也愿意采用更好的分块删除方法,我只是凭记忆得到了那个。
这很容易做到。我之前在这里写过:简化归档流程
示例查询看起来像这样:
您确实需要小心 OUTPUT,因为如果您的目标是客户端应用程序或表变量,则该计划将被强制串行。