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 :

[débutante] drop database impossible


Sujet :

MS SQL Server

  1. #1
    Membre éprouvé Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Par défaut [débutante] drop database impossible
    Bonjour!

    Je souhaite générer ma base avec un script sql. Or je fais des modifications dans mon modele au fur et à mesure et donc forcément, je regénère le script à chaque fois via Win'Design (je sais pas si ça a un lien mais bon, sait on jamais, l'informatique est fourbe ...)

    Bref j'exécute mon script dans mon analyseur de requête et voilà ce qu'on me dit :
    Impossible de supprimer le base de données 'Qualite', parce qu'il est présentement utilisé.
    et voila le debut de mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    drop database Qualite
    go
     
    create database Qualite
    go
     
    use Qualite
    go
    Quelqu'un peut m'expliquer comment ça se fait qu'il utilise ma database Qualite avant meme que je lui dise? Ou alors mon neurone blond a pris le dessus et j'ai raté quelque chose...

    Merci d'avance!!

  2. #2
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Salut,

    Je vois 2 possibilités:
    1) Un de tes processes de création est encore actif et il crée un rowlock.
    Ca tu peux le voir dans l'entreprise manager.
    2) Tu utilises une clé étrangère sur cette table et donc la contrainte est violée

    a+

  3. #3
    Membre éprouvé Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Par défaut
    Citation Envoyé par ze_key
    Salut,

    Je vois 2 possibilités:
    1) Un de tes processes de création est encore actif et il crée un rowlock.
    Ca tu peux le voir dans l'entreprise manager.
    2) Tu utilises une clé étrangère sur cette table et donc la contrainte est violée

    a+
    Je veux supprimer une base de données complète et non une table, justement pour me faciliter la vie à cause de toutes les contraintes.

    Par contre comment on fait pour voir un "rowlock" dans l'enterprise manager? (je sais meme pas ce qu'est un rowlock )

  4. #4
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    1) Mea maxima cuelpa, j'avais mal lu.
    Mais c'est plutôt une bonne chose, parce que si tu as du mal à supprimer une base complète c'est qu'un processus est dessus, genre tu aurais oublié une fenêtre sql analyser.

    2) Enterprise Manager > Choix du serveur > current activity (moi je l'ai en anglais) > process info te dis quel process est sur quelle base

    3)Un rowlock c'est quand 2 process essayent de faire en même temps une opération sur la même ligne db ou le même groupe de lignes db. Et donc la le moteur ne sachant que faire bloque (ou alors en tu un des deux)

  5. #5
    Membre éprouvé Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Par défaut
    Bon il n'y a qu'un seul process (en sleeping) qui tourne sur ma database qualite, et quand j'ai voulu le terminer il m'a kické de l'enterprise manager.. Mais l'application concernée est l'analyseur de requêtes SQL. J'en ai qu'une seule fenêtre ouverte...

    Faut pas faire un de-Use ou je ne sais quoi quand on fait un use?

  6. #6
    Membre expérimenté
    Inscrit en
    Mars 2004
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 425
    Par défaut
    Est ce que ton analyseur de requête n'est pas connecté sur la base que tu souhaite supprimer?

    Rassure toi que tu es connecté à une base de données différente de celle là. Places toi sur MASTER par exemple.

    A plus

  7. #7
    Membre éprouvé Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Par défaut
    Debut de solution (peut etre meme la fin... )
    Quand je me connecte je ne précise qu'un nom de serveur. j'exécute mon script avec le drop database, ça marche. Je réexécute le script, ça marche plus. dans le genre pratique, bonjour! il faut que je me deconnecte completement a chaque fois... je crois que je vais devoir me contenter de ça, même si je ne sais pas si c'est normal ou non...

    Mais apparemment il conserve quelque part le use database, on lui a dit une fois et il l'oublie pas le bougre!

    Je crois que SQL Server, c'est comme les hommes, je ne le comprendrais jamais...

  8. #8
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Rassures toi nous on ne comprends rien au femmes....
    et c'est pas faute d'y mettre de la bonne volonté...
    Bref avant ton script fait un USE MASTER (Il faut que ton utilisateur ait les droits sur master)

  9. #9
    Membre éprouvé Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Par défaut
    Citation Envoyé par ze_key
    Bref avant ton script fait un USE MASTER (Il faut que ton utilisateur ait les droits sur master)
    Bien essayé petit scarabé, mais il veut toujours pas!

    Il prend plus de temps à s'exécuter, mais je récupère toujours et encore le même message d'erreur!

    c'est bien ça que tu me demandais de faire non? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    use master
     
    drop database Qualite
    go

  10. #10
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 227
    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 227
    Billets dans le blog
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    use master 
    go
    select spid from sysprocesses where dbid=db_id('Qualite')
    if @@rowcount = 0
       drop database Qualite 
    go
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  11. #11
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Oui petit papillion sur la rosé du matin qui s'eveille après la nuit qui est tombée subitement.

    J'ai testé ton script plusieur fois:
    Connecté en tant que sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    use master
    drop database Qualite
    go
    create database Qualite
    go
    use Qualite
    go
    Et ca marche bien je te propose un truc de sorcellerie vaudou
    1)Egorge un poulet au dessus de la machine
    2)Redémarre et veille a ne démarrer qu'un seul SQL Analyser


    a+

  12. #12
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 227
    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 227
    Billets dans le blog
    25
    Par défaut
    Citation Envoyé par ze_key
    J'ai testé ton script plusieur fois:
    Connecté en tant que sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    use master
    drop database Qualite
    go
    create database Qualite
    go
    use Qualite
    go
    Avant le vaudou :

    1) si le test se fait via sa, la base par défaut est master, donc le go manquant entre le use master et le drop database n'impacte pas.
    2) le drop database ne peut être fait que depuis master : si vous êtes dans une autre base, ça risque de poser problème si le GO manque après le USE master
    3) que donnela requête sur master..sysprocesses ?
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  13. #13
    Membre éprouvé Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Par défaut
    (1 ligne(s) affectée(s))

    Serveur*: Msg 1801, Niveau 16, État 3, Ligne 6
    La base de données 'Qualite' existe déjà.

  14. #14
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Attend la je suis perdu qu'est ce qui te donne ca ?
    Tu es sure de n'avoir qu'un seul sql analyser (Pour le problème d'avant)?
    si tu fais maintenant juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Use master
    go
    drop database qualite
    go
    Que ce passe t-il ?

    Moi je recois un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Die Datenbankdatei 'C:\Programme\Microsoft SQL Server\MSSQL\data\Qualite_log.LDF' wird gelöscht.
    Die Datenbankdatei 'C:\Programme\Microsoft SQL Server\MSSQL\data\Qualite.mdf' wird gelöscht.
    Bon c'est de l'Allemand mais l'idée y est

  15. #15
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 227
    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 227
    Billets dans le blog
    25
    Par défaut
    la ligne affectée, c'est lors du select dans sysprocesses ? si tel est le cas, pourrais-je voir la ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from master..sysprocesses where dbid = db_id('Qualite')
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  16. #16
    Membre éprouvé Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Par défaut

    Je peux pas m'improviser admin d'une base de données moi.. comprends plus rien....
    Bon.
    Je n'ai qu'un seul SQL Analyser d'ouvert, ou alors j'ai un sérieux problème aux yeux.

    il me dit que le SPID c'est 52... Je regarde dans Enterprise manager...

    Et la je peux aller me pendre : c'est Enterprise Manager que j'ai laissé ouvert en essayant désespérément de créer un utilisateur pour pouvoir me connecter via une page ASP (chose que je n'arrive pas à faire non plus, fera peut etre l'objet d'un autre topic, mais je sais pas encore ou )...

    bon maintenant la génération de la base de données ça marche au moins!!!

    Merci les gars!!!

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

Discussions similaires

  1. DROP DATABASE impossible
    Par bdubain dans le forum JDBC
    Réponses: 2
    Dernier message: 31/01/2014, 15h26
  2. Drop database ne fonctionne pas sous VISTA
    Par globule2 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 08/03/2007, 13h23
  3. la commande "DROP DATABASE" est désactivée
    Par r83 dans le forum Outils
    Réponses: 2
    Dernier message: 22/10/2006, 01h39
  4. [phpMyAdmin] Drop database impossible
    Par Jarodd dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 16/09/2006, 00h02
  5. ouverture database impossible
    Par jpapou dans le forum InterBase
    Réponses: 6
    Dernier message: 04/02/2005, 12h33

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