Optimisaer le code

Résolu
mwahid Messages postés 56 Date d'inscription dimanche 20 juillet 2003 Statut Membre Dernière intervention 26 juillet 2009 - 12 oct. 2008 à 16:28
mwahid Messages postés 56 Date d'inscription dimanche 20 juillet 2003 Statut Membre Dernière intervention 26 juillet 2009 - 12 oct. 2008 à 17:55
    Bonjour,
Je voudrais récupérer le nombre d'enregistrement dans une
table en utilisant le TransactSQL (c'est pour vérifier le nombre
d'enregistrement avant la suppression de la table)



voici ce que j'ai fait, est-ce que je pourrais optimiser ce script :

-- Supprimer la table
DECLARE @NBR_FICHE INT;
DECLARE CUR_NBR CURSOR FOR SELECT count(*) FROM Table2;
OPEN CUR_NBR
FETCH CUR_NBR INTO @NBR_FICHE
    IF (@NBR_FICHE=2)
        DROP TABLE dbo.Table2

CLOSE CUR_NBR
DEALLOCATE CUR_NBR

Merci

2 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
12 oct. 2008 à 17:34
Salut,

Effectivement, un curseur pour lire une valeur unique c'est un peu lourd.
J'aurais plutôt fait quelquechose du genre (si j'ai bien compris : on ne veut supprimer la table que si elle contient exactement 2 enregistrements) :


DECLARE @NBR_FICHE INT;
SELECT @NBR_FICHE = count(*) FROM Table2;

IF (@NBR_FICHE=2)
        DROP TABLE dbo.Table2

/*
coq
MVP Visual C#
CoqBlog
*/
3
mwahid Messages postés 56 Date d'inscription dimanche 20 juillet 2003 Statut Membre Dernière intervention 26 juillet 2009
12 oct. 2008 à 17:55
MERCI
0
Rejoignez-nous