更新:
我发现,包括实际的执行计划是添加额外的行影响警告的罪魁祸首。
原始问题:
我要删除成百上千条记录中的数十万条不必要的记录。
我的问题是,每100行删除指令出现一条警告(受影响的1行),我想知道这可能是什么。
我的表没有任何触发器,也没有与级联的关系。因此,您是否知道其他可能影响额外行的内容?
DECLARE @LOOP bit = 1
WHILE @LOOP = 1
BEGIN
BEGIN TRANSACTION
DELETE TOP (100) FICHERO_ASIGNACION
FROM FICHERO_ASIGNACION
INNER JOIN FICHERO ON FICHERO.FIC_KEY = FICHERO_ASIGNACION.FIC_KEY
WHERE FAT_KEY = 4 and
CLI_COD is null and
FIC_BUC = 'prd.factura-venta'
PRINT '100 unneeded assignments deleted'
IF @@ROWCOUNT = 0 SET @LOOP = 0
COMMIT TRANSACTION
END
这是结果:
(100 rows affected)
(1 row affected)
100 unneeded assignments deleted
(100 rows affected)
(1 row affected)
100 unneeded assignments deleted
(100 rows affected)
(1 row affected)
100 unneeded assignments deleted
...
...
此外,在执行计划中,我看不到任何对其他表或其他搜索的引用。
谢谢。
答案 0 :(得分:2)
通过显示执行计划,似乎引发了额外的行警告。
我已经删除了“包括实际执行计划”,现在它不显示任何其他受影响的行。
谢谢大家。
答案 1 :(得分:0)
对我来说很好。检查here。 桌上有触发器吗?。