Maison > base de données > tutoriel mysql > Comment supprimer efficacement un nombre spécifique de lignes supérieures dans SQL Server 2008 ?

Comment supprimer efficacement un nombre spécifique de lignes supérieures dans SQL Server 2008 ?

Susan Sarandon
Libérer: 2024-12-16 12:38:17
original
521 Les gens l'ont consulté

How to Efficiently Delete a Specific Number of Top Rows in SQL Server 2008?

Suppression efficace des lignes supérieures dans SQL Server 2008

Imaginez une situation dans laquelle vous devez supprimer un nombre spécifique de lignes du haut de une table dans SQL Server. Bien qu'une approche intuitive puisse consister à utiliser une instruction DELETE associée à une clause TOP, vous pouvez rencontrer des problèmes où toutes les lignes sont supprimées par inadvertance. Pour résoudre ce problème, suivez les conseils suivants :

Le code que vous avez tenté d'exécuter, comme vous l'avez découvert, entraîne la suppression de toutes les lignes de votre table. En effet, le code comprend deux instructions distinctes : une instruction DELETE et une instruction SELECT avec une clause TOP. La clause TOP, sans spécifier de clause ORDER BY, ne peut pas identifier efficacement les lignes à supprimer.

Pour garantir la suppression sélective des lignes, vous devez établir les critères de classement au sein de la clause TOP. De plus, la création d'une expression de table commune (CTE) ou d'une expression de table similaire est une méthode très efficace pour supprimer un nombre défini de lignes supérieures.

L'extrait de code suivant illustre une approche plus fiable :

;WITH CTE AS
(
SELECT TOP 1000 *
FROM [mytab]
ORDER BY a1
)
DELETE FROM CTE
Copier après la connexion

Dans ce code, le CTE établit un tableau distinct, dérivé de votre tableau d'origine, en sélectionnant le nombre de lignes spécifié en fonction d'un critère de classement spécifique (dans ce cas, le colonne a1). Par la suite, l'instruction DELETE supprime les lignes de cette table temporaire, garantissant la suppression ciblée uniquement des lignes supérieures.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal