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 :

Créer une procedure si elle n'existe pas.


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Créer une procedure si elle n'existe pas.
    Bonjour,

    dans ma procédure stockée je voudrais créer une procédure si et seulement si elle n'existe pas. J'ai testé avec "if not exists" mais ca ne marche pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ps_Copy_Phase]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    	print 'Je ne la crée pas'
    begin
     
    --Creation de la procedure ps_copy_phase
    CREATE  PROCEDURE [dbo].[ps_Copy_Phase] @Filtres_Param varchar(4000), ...
    J'obtien l'erreur -> Server: Msg 156, Level 15, State 1, Line 9
    Incorrect syntax near the keyword 'PROCEDURE'.

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    L'instruction CREATE PROCEDURE doit être la seule dans le batch, donc tu ne peux pas utiliser un IF avant. C'est pour ça que le code généré par Query Analyzer fait l'inverse : il supprime la procédure si elle existe déjà, avant de la créer. Si tu fais ça, n'oublie pas de redonner les droits.

    Donc à ma connaissance, pas de moyen de faire ce que tu veux. Peut-être qqn d'autre a un truc.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Merci de ta réponse.

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    C'est déjà pas une bonne idée de créer une proc dans une proc (impoact sur les metadonnées)... et l'avantage des PROC est justement qu'elles sont au préalable créées (donc déjà compilées).

  5. #5
    Membre actif Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Points : 248
    Points
    248
    Par défaut
    salut,

    On peut créer une procédure stockée dans une procédure stockée, en mettant la seconde requête de création dans un EXEC

Discussions similaires

  1. [XL-2010] Ajouter une feuille si elle n'existe pas
    Par PhaleneCAD dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/02/2011, 20h53
  2. Ajouter une ligne si elle n'existe pas dans la table
    Par daimadoshi dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 19/11/2010, 15h52
  3. Réponses: 3
    Dernier message: 20/05/2009, 13h33
  4. Inserer une valeur si elle n'existe pas
    Par darksky7 dans le forum Débuter
    Réponses: 3
    Dernier message: 20/01/2009, 13h20
  5. Insérer une donnée si elle n'existe pas.
    Par ShortcutZ dans le forum Langage SQL
    Réponses: 6
    Dernier message: 26/03/2008, 16h07

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