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

Développement SQL Server Discussion :

[SQL2005]Supprimmer une base (variable)


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Points : 52
    Points
    52
    Par défaut [SQL2005]Supprimmer une base (variable)
    Bonjour,

    Mon application est constituée de plusieurs bases de données, certaines bases sont exclusivement réservés à certains Clients. Je suis en train de développer une interface d'administration dont l'une des possibilité est de supprimer des Clients. Or, si on supprime un Client, il faut aussi supprimer la base qui lui est réservée. J'ai stocké le nom de la base dans la table "Client", il me faut donc seulement faire une SELECT dans cette table pour stocker le nom de la base dans une variable puis utiliser "DROP DATABASE" pour supprimer la base.
    J'essaie d'écrire une procédure stockée directement dans SQL Server Management Studio pour faire ça mais ça ne marche pas, ça me dit :
    Syntaxe incorrecte vers '@base'
    Voici la partie concernée de ma procédure stockée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE PROCEDURE [dbo].[supprimerClient] 
    	@id int = 0
    AS
     
    DECLARE @base varchar(50)
     
    BEGIN
            SELECT @base=base FROM Client WHERE idClient=@id;
            DROP DATABASE @base;
    END
    Si quelqu'un pouvait me dire comment faire un DROP DATABASE avec une variable, ça m'aiderait grandement.

    Merci d'avance ^^

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 774
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 774
    Points : 52 744
    Points
    52 744
    Billets dans le blog
    5
    Par défaut
    faites du SQL dynamique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE PROCEDURE [dbo].[supprimerClient] 
    	@id int = 0
    AS
     
    DECLARE @base varchar(50), @SQL varchar(max)
     
    BEGIN
            SELECT @base=base 
            FROM   Client 
            WHERE  idClient = @id;
            SET @SQL = 'DROP DATABASE ' + @base;
            EXEC (@SQL);
    END
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    J'avais essayé mais sans les parenthèses, je ne comprenais pas pourquoi ça ne marchait pas.

    Merci beaucoup SQLpro

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 774
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 774
    Points : 52 744
    Points
    52 744
    Billets dans le blog
    5
    Par défaut
    EXEC sans parenthèse c'est pour appeler une proc. Avec parenthèse c'est pour éxécuter une chaine....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    EXEC sans parenthèse c'est pour appeler une proc. Avec parenthèse c'est pour éxécuter une chaine....
    C'est ce que j'avais compris après avoir eu la solution, merci encore ^^

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

Discussions similaires

  1. [SQL2005] Scinder une base de données
    Par hubble85 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/12/2007, 14h00
  2. [MySQL] Importer/exporter les variables courante d'/dans une base
    Par vovor dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 12/07/2007, 22h43
  3. [SQL2005]Récupérer une base supprimé
    Par mohamed dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/04/2007, 00h53
  4. Récupérer une base de SQL2005 vers SQL2000
    Par titlola dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 11/10/2006, 15h53
  5. [VB.NET] lien d'une base de donnée dans une variable
    Par Anubis666 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 19/01/2006, 10h56

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