Lors de l'exécution d'opérations groupées sur les tables SQL Server, on se demande souvent s'il existe un moyen d'effectuer des opérations de suppression groupée similaires aux opérations largement répandues outil Bulk Copy (bcp) utilisé et efficace pour les opérations d’insertion. Cette question se pose en raison de l'absence de fonctionnalité dédiée à la suppression groupée dans SQL Server.
Malheureusement, la réponse est négative. SQL Server ne fournit pas de mécanisme direct comme bcp pour supprimer des données en masse. Si vous souhaitez limiter les lignes affectées par l'opération de suppression à l'aide d'une clause WHERE, vous ne pouvez pas utiliser la commande TRUNCATE, qui supprime toutes les lignes d'une table sans aucun filtrage.
Approches alternatives
En l'absence d'utilitaire de suppression groupée, il existe quelques approches alternatives que vous pouvez prendre :
Suppressions par lots :
Échange de table :
Exemple :
-- Batched Deletes SELECT 'Starting' --sets @@ROWCOUNT WHILE @@ROWCOUNT <> 0 DELETE TOP (1000) MyTable WHERE ... -- Table Swap SELECT col1, col2, ... INTO #Holdingtable FROM MyTable WHERE ..opposite condition.. TRUNCATE TABLE MyTable INSERT MyTable (col1, col2, ...) SELECT col1, col2, ... FROM #Holdingtable
N'oubliez pas que ces approches alternatives peuvent ne pas toujours offrir les mêmes performances qu'une approche groupée dédiée. supprimer la fonctionnalité. Cependant, ils offrent des options viables pour les opérations de suppression à grande échelle lorsque l'utilisation d'une clause WHERE est requise.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!