IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Peut-on avoir un execute dans un If


Sujet :

MS SQL Server

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut Peut-on avoir un execute dans un If
    Je dois écrire une routine qui transfère certaines procédures stockées d'une base vers une autre.
    La routine reçoit en paramètre le nom de la base cible et le nom de la procédure à transférer.

    Je voudrais donc d'abord supprimer la procédure existante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	Set @LC_Texte2 = 'DROP PROCEDURE ' + @PC_Procedure
    	Execute (@LC_Texte2)
    Pour que ce code soit stable je dois tester d'abord si la procédure existe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	IF  EXISTS (SELECT * FROM sys.objects Where Name = @PC_Procedure) 
    		Set @LC_Texte2 = 'DROP PROCEDURE ' + @PC_Procedure
    		Execute (@LC_Texte2)
    	Else
    Et là le fait d'avoir un Execute en tre le If et le Else fait planter à la compilation

    Est-ce que je peux écrire cela autrement ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Salut,

    Il faut que tu rajoute BEGIN et END pour encapsuler ton SET et ton EXECUTE.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	IF  EXISTS (SELECT * FROM sys.objects WHERE Name = @PC_Procedure) 
    BEGIN
    		SET @LC_Texte2 = 'DROP PROCEDURE ' + @PC_Procedure
    		Execute (@LC_Texte2)
    END
    	Else

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 18
    Dernier message: 01/03/2012, 10h34
  2. Peut on avoir une valeur NULL dans un composite-id ?
    Par weed dans le forum Hibernate
    Réponses: 0
    Dernier message: 20/11/2008, 12h12
  3. Réponses: 0
    Dernier message: 30/09/2007, 00h10
  4. Peut-on avoir une rebrique PeopleSoft dans le forum ?
    Par afaraji dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 28/12/2005, 11h07
  5. Peut on mettre une image dans une BD MySQL ?
    Par maddog2032 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 25/07/2003, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo