Suppression groupée dans SQL Server 2008 : une exploration
La notion de suppression groupée surgit lorsque l'on cherche à supprimer un grand nombre de lignes de une table efficacement. Bien que la commande TRUNCATE de SQL Server offre un moyen rapide de supprimer toutes les lignes d'une table, elle ne peut pas prendre en charge les clauses WHERE pour supprimer sélectivement des données.
La copie groupée est-elle applicable à la suppression ?
Malheureusement, il n'existe pas d'équivalent direct à Bulk Copy (bcp) pour la suppression dans SQL Server 2008. Cependant, nous pouvons exploiter des approches alternatives pour réaliser une suppression groupée.
Suppression par lots
La suppression par lots implique de diviser l'opération de suppression en lots plus petits. Ceci peut être réalisé en utilisant la syntaxe suivante :
SELECT 'Starting' --sets @@ROWCOUNT WHILE @@ROWCOUNT <> 0 DELETE TOP (xxx) MyTable WHERE ...
L'instruction 'Starting' définit la variable @@ROWCOUNT, qui détermine le nombre de lignes à supprimer dans chaque lot. La boucle WHILE continue jusqu'à ce que toutes les lignes soient supprimées.
Utilisation d'une table de maintien
Si une proportion importante de lignes doit être supprimée, une table de maintien peut être utilisée. Les étapes suivantes décrivent cette approche :
Conclusion
Bien qu'il n'existe pas de substitut direct à la copie en bloc pour suppression dans SQL Server 2008, les techniques décrites ci-dessus offrent des alternatives viables. La suppression par lots convient à la suppression sélective d'un plus petit nombre de lignes, tandis que l'approche de la table de conservation est bénéfique pour les suppressions à plus grande échelle.
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!