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 :

SQL 2005 Suppression de base par script


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut SQL 2005 Suppression de base par script
    Bonjour,

    Je voudrai pouvoir supprimer une base par script, mais je viens d'etre bloqué (en executant mon script par ligne de commande "sqlcmd -s NomServeur -i fichier.sql ") avec comme message d'erreur "le contexte de la base de données a changé, il est maintenant 'master'".
    à quoi ca refere?
    Mon code pour l'instant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    set quoted_identifier off
    go
    USE [master]
    GO
    /****** Object:  Database [NomBAse]    Script Date: 03/22/2006 08:08:48 ******/
    IF  EXISTS (SELECT name FROM sys.databases WHERE name = N'NomBAse')
    DROP DATABASE [NomBAse]
    go
    create database NomBAse
    go
    use NomBAse
    merci.

  2. #2
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    ok, je viens comprendre un truc...
    LE contexte de la base de donnée c'est qd on a un "USE NOMBASE"...
    biiiiiien...je suis un vrai bille en SQL...
    Sinon apparemment ma base ne peut pas etre supprimer à cause du fait qu'elle soit en cours d'utilisation.
    Donc ma question: comment code-t-on pour que les connexion soient coupées avant que la base ne soit supprimée?

    merci

  3. #3
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    DOnc j'ai trouvé que si je me deconnecte de SSMS, mon script passe.
    Cependant je pense à l'utilisation future, où plusieurs personnes pourront etre connectée à la base, comment je fais pour toutes les deconnecter et executer mon script?

    J'ai trouvé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 'KILL ' + convert(varchar(4), spid) 
    FROM master..sysprocesses 
    WHERE dbid = db_id('NomBase')
    Ca me renvoit les id de connexion à ma base, mais comment faire pour m'en servir pour les supprimer les unes apres les autres?

  4. #4
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    je reviens a la charge...
    Mon script n'a marché qu'une fois, meme en etant pas connecté dans SSMS.
    La seule connexion à la base qui a été recensée est la mienne, et je suis administrateur.
    J'ai vu ca avec "sp_who".
    Personne pour me dire comment faire pour suppirmer une base par un script executé en ligne de commande avec sqlcmd?

  5. #5
    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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER DATABASE mabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    Pour déconnecter tous les utilisateurs de la base avant suppression
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/12/2010, 09h33
  2. extraction du script d une base de donnee SQL 2005
    Par idream dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/08/2009, 23h40
  3. [SQL 2005]création d'instance par code sql
    Par m-mas dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/10/2007, 21h55
  4. [SQL 2005] "Restauration.." de base sans fin
    Par Poulou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/11/2006, 09h26
  5. [SQL 2005 Express] Déplacer une base vers un autre serveur
    Par joKED dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/05/2006, 17h37

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