ma table (sql sever 2000) contient une grande quantité de lignes, quand je supprime une ligne, elle est extrêmement lente.
J'ai vu un message / forum qui suggère d'utiliser une fonction de boucle WHILE pour supprimer l'logging par lot.
mon sql est:
DELETE FROM Tprs_master where Fincmonth='201109';
J'ai réécrit à:
DELETE FROM(SELECT TOP 100 FROM tprs_master) AS t1 WHERE t1.Fincmonth='201109'
mais ça ne marche pas.
comment puis-je réécrire le sql ci-dessus pour supprimer le style TOP? Merci
La page MSDN DELETE donne des exemples et syntaxe
DELETE TOP (100) FROM Tprs_master where Fincmonth='201109';
Remarque: SQL Server 2005+ uniquement
Voir aussi pour plus d'exemples Bulk DELETE sur SQL Server 2008 (Existe-t-il quelque chose comme Bulk Copy (bcp) pour supprimer des données?)
Edit: OP a SQL Server 2000
SET ROWCOUNT 100 DELETE FROM Tprs_master where Fincmonth='201109'; SET ROWCOUNT 0