OVH Cloud OVH Cloud

detacher une base de données

8 réponses
Avatar
vivi
Bonjour

j'essaye de détacher une base de données via la procédure stockée
sp_detach_db dans mon code , j'ai verifié cette procédure fonctionne.

le probleme est que lorsque je fais une ouverture de base de cette derniere
puis une fermeture de base, et que j'essaye de la detacher j'ai un message
d'erreur 'impossible de detacher car elle est en cours d'utilisation'

je me suis dit ok fermons la connexion avant de la detacher
j'utilise la procedure stockée sp_dboption mais le resultat est le meme
'impossible de detacher car elle est en cours d'utilisation'

je pense que un processus sql server est en cours

j'aimerai fermer cette base et la detacher comment faire???

merci

8 réponses

Avatar
Oliv'
Helloooo,
arrêtes sql puis relance.
ou vérifie qui est connecté en faisant un sp_who2

Oliv'
"vivi" a écrit dans le message de news:

Bonjour

j'essaye de détacher une base de données via la procédure stockée
sp_detach_db dans mon code , j'ai verifié cette procédure fonctionne.

le probleme est que lorsque je fais une ouverture de base de cette derniere
puis une fermeture de base, et que j'essaye de la detacher j'ai un message
d'erreur 'impossible de detacher car elle est en cours d'utilisation'

je me suis dit ok fermons la connexion avant de la detacher
j'utilise la procedure stockée sp_dboption mais le resultat est le meme
'impossible de detacher car elle est en cours d'utilisation'

je pense que un processus sql server est en cours

j'aimerai fermer cette base et la detacher comment faire???

merci
Avatar
vivi
"Oliv'" wrote:

Helloooo,
arrêtes sql puis relance.
ou vérifie qui est connecté en faisant un sp_who2

Oliv'
"vivi" a écrit dans le message de news:

Bonjour

j'essaye de détacher une base de données via la procédure stockée
sp_detach_db dans mon code , j'ai verifié cette procédure fonctionne.

le probleme est que lorsque je fais une ouverture de base de cette derniere
puis une fermeture de base, et que j'essaye de la detacher j'ai un message
d'erreur 'impossible de detacher car elle est en cours d'utilisation'

je me suis dit ok fermons la connexion avant de la detacher
j'utilise la procedure stockée sp_dboption mais le resultat est le meme
'impossible de detacher car elle est en cours d'utilisation'

je pense que un processus sql server est en cours

j'aimerai fermer cette base et la detacher comment faire???

merci


merci oliv



le soucis c que je dois faire ca en code vb.net et non pas avec entreprise
manager
car la procédure de détachement c le client qui va le faire sur son poste
avec un msde installé...

ok admettons que je sache qui est connecté comment je fais par la suite pour
le déconnecter ???
Avatar
Med Bouchenafa
Il faut se positionner sur la base Master avant de faire la manipulation
Use Master
go
sp_detach_db ....

--
Bien cordialement
Med Bouchenafa


"vivi" a écrit dans le message de news:

Bonjour

j'essaye de détacher une base de données via la procédure stockée
sp_detach_db dans mon code , j'ai verifié cette procédure fonctionne.

le probleme est que lorsque je fais une ouverture de base de cette derniere
puis une fermeture de base, et que j'essaye de la detacher j'ai un message
d'erreur 'impossible de detacher car elle est en cours d'utilisation'

je me suis dit ok fermons la connexion avant de la detacher
j'utilise la procedure stockée sp_dboption mais le resultat est le meme
'impossible de detacher car elle est en cours d'utilisation'

je pense que un processus sql server est en cours

j'aimerai fermer cette base et la detacher comment faire???

merci



Avatar
vivi
merci med mais quel est la syntaxe exacte parce que j'essaye de l'incorporer
dans une commande sql mais la syntaxe est inexacte...


sqlcom.CommandText = "Use master" & " go" & " EXEC sp_detach_db
'mabase','true'"
sqlcom.ExecuteNonQuery()

"Med Bouchenafa" wrote:

Il faut se positionner sur la base Master avant de faire la manipulation
Use Master
go
sp_detach_db ....

--
Bien cordialement
Med Bouchenafa


"vivi" a écrit dans le message de news:

> Bonjour
>
> j'essaye de détacher une base de données via la procédure stockée
> sp_detach_db dans mon code , j'ai verifié cette procédure fonctionne.
>
> le probleme est que lorsque je fais une ouverture de base de cette derniere
> puis une fermeture de base, et que j'essaye de la detacher j'ai un message
> d'erreur 'impossible de detacher car elle est en cours d'utilisation'
>
> je me suis dit ok fermons la connexion avant de la detacher
> j'utilise la procedure stockée sp_dboption mais le resultat est le meme
> 'impossible de detacher car elle est en cours d'utilisation'
>
> je pense que un processus sql server est en cours
>
> j'aimerai fermer cette base et la detacher comment faire???
>
>


Avatar
Med Bouchenafa
Le principe pour détacher une base de données par sp_detach_db est qu'aucun utilisateur ne soit
connecté à cette base.
C'est pourquoi, je te demandais de passer sur Master afin de libérer la base de ta propre connexion.
Il se trouve que dans le cas présent, il est fort possible que c'est ton propre programme qui est
connecté.
Je connais pas ta chaîne de connexion pour te dire mais tu peux aisément vérifier par sp_who
Si tu dois changer de contexte de base par programme, il faut utiliser le ";" qui est le séparateur
d'instruction
sqlcom.CommandText = "Use master; EXEC sp_detach_db mabase, true"


--
Bien cordialement
Med Bouchenafa

"vivi" a écrit dans le message de news:

merci med mais quel est la syntaxe exacte parce que j'essaye de l'incorporer
dans une commande sql mais la syntaxe est inexacte...


sqlcom.CommandText = "Use master" & " go" & " EXEC sp_detach_db
> sqlcom.ExecuteNonQuery()

"Med Bouchenafa" wrote:

> Il faut se positionner sur la base Master avant de faire la manipulation
> Use Master
> go
> sp_detach_db ....
>
> --
> Bien cordialement
> Med Bouchenafa
>
>
> "vivi" a écrit dans le message de news:
>
> > Bonjour
> >
> > j'essaye de détacher une base de données via la procédure stockée
> > sp_detach_db dans mon code , j'ai verifié cette procédure fonctionne.
> >
> > le probleme est que lorsque je fais une ouverture de base de cette derniere
> > puis une fermeture de base, et que j'essaye de la detacher j'ai un message
> > d'erreur 'impossible de detacher car elle est en cours d'utilisation'
> >
> > je me suis dit ok fermons la connexion avant de la detacher
> > j'utilise la procedure stockée sp_dboption mais le resultat est le meme
> > 'impossible de detacher car elle est en cours d'utilisation'
> >
> > je pense que un processus sql server est en cours
> >
> > j'aimerai fermer cette base et la detacher comment faire???
> >
> >


Avatar
vivi
je change bien de contexte de base mais cela ne ferme toujours pas la
connexion,ni ne détache la base n'y a t-il pas moyen de forcer la connnexion
à se fermer?

merci

"Med Bouchenafa" wrote:

Le principe pour détacher une base de données par sp_detach_db est qu'aucun utilisateur ne soit
connecté à cette base.
C'est pourquoi, je te demandais de passer sur Master afin de libérer la base de ta propre connexion.
Il se trouve que dans le cas présent, il est fort possible que c'est ton propre programme qui est
connecté.
Je connais pas ta chaîne de connexion pour te dire mais tu peux aisément vérifier par sp_who
Si tu dois changer de contexte de base par programme, il faut utiliser le ";" qui est le séparateur
d'instruction
sqlcom.CommandText = "Use master; EXEC sp_detach_db mabase, true"


--
Bien cordialement
Med Bouchenafa

"vivi" a écrit dans le message de news:

> merci med mais quel est la syntaxe exacte parce que j'essaye de l'incorporer
> dans une commande sql mais la syntaxe est inexacte...
>
>
> sqlcom.CommandText = "Use master" & " go" & " EXEC sp_detach_db
> > sqlcom.ExecuteNonQuery()
>
> "Med Bouchenafa" wrote:
>
> > Il faut se positionner sur la base Master avant de faire la manipulation
> > Use Master
> > go
> > sp_detach_db ....
> >
> > --
> > Bien cordialement
> > Med Bouchenafa
> >
> >
> > "vivi" a écrit dans le message de news:
> >
> > > Bonjour
> > >
> > > j'essaye de détacher une base de données via la procédure stockée
> > > sp_detach_db dans mon code , j'ai verifié cette procédure fonctionne.
> > >
> > > le probleme est que lorsque je fais une ouverture de base de cette derniere
> > > puis une fermeture de base, et que j'essaye de la detacher j'ai un message
> > > d'erreur 'impossible de detacher car elle est en cours d'utilisation'
> > >
> > > je me suis dit ok fermons la connexion avant de la detacher
> > > j'utilise la procedure stockée sp_dboption mais le resultat est le meme
> > > 'impossible de detacher car elle est en cours d'utilisation'
> > >
> > > je pense que un processus sql server est en cours
> > >
> > > j'aimerai fermer cette base et la detacher comment faire???
> > >
> > >





Avatar
bruno reiter [MVP]
déconnecter tout le monde avec :

alter database xxx set offline WITH ROLLBACK AFTER n SECONDS
voir aide

br

"vivi" wrote in message
news:
je change bien de contexte de base mais cela ne ferme toujours pas la
connexion,ni ne détache la base n'y a t-il pas moyen de forcer la


connnexion
à se fermer?

merci

"Med Bouchenafa" wrote:

> Le principe pour détacher une base de données par sp_detach_db est


qu'aucun utilisateur ne soit
> connecté à cette base.
> C'est pourquoi, je te demandais de passer sur Master afin de libérer la


base de ta propre connexion.
> Il se trouve que dans le cas présent, il est fort possible que c'est ton


propre programme qui est
> connecté.
> Je connais pas ta chaîne de connexion pour te dire mais tu peux aisément


vérifier par sp_who
> Si tu dois changer de contexte de base par programme, il faut utiliser


le ";" qui est le séparateur
> d'instruction
> sqlcom.CommandText = "Use master; EXEC sp_detach_db mabase, true"
>
>
> --
> Bien cordialement
> Med Bouchenafa
>
> "vivi" a écrit dans le message de news:
>
> > merci med mais quel est la syntaxe exacte parce que j'essaye de


l'incorporer
> > dans une commande sql mais la syntaxe est inexacte...
> >
> >
> > sqlcom.CommandText = "Use master" & " go" & " EXEC sp_detach_db
> > > sqlcom.ExecuteNonQuery()
> >
> > "Med Bouchenafa" wrote:
> >
> > > Il faut se positionner sur la base Master avant de faire la


manipulation
> > > Use Master
> > > go
> > > sp_detach_db ....
> > >
> > > --
> > > Bien cordialement
> > > Med Bouchenafa
> > >
> > >
> > > "vivi" a écrit dans le message de


news:
> > >
> > > > Bonjour
> > > >
> > > > j'essaye de détacher une base de données via la procédure stockée
> > > > sp_detach_db dans mon code , j'ai verifié cette procédure


fonctionne.
> > > >
> > > > le probleme est que lorsque je fais une ouverture de base de cette


derniere
> > > > puis une fermeture de base, et que j'essaye de la detacher j'ai un


message
> > > > d'erreur 'impossible de detacher car elle est en cours


d'utilisation'
> > > >
> > > > je me suis dit ok fermons la connexion avant de la detacher
> > > > j'utilise la procedure stockée sp_dboption mais le resultat est le


meme
> > > > 'impossible de detacher car elle est en cours d'utilisation'
> > > >
> > > > je pense que un processus sql server est en cours
> > > >
> > > > j'aimerai fermer cette base et la detacher comment faire???
> > > >
> > > >
>
>
>


Avatar
vivi
merci cela fonctionne parfaitement , chapeau bas :)

"bruno reiter [MVP]" wrote:

déconnecter tout le monde avec :

alter database xxx set offline WITH ROLLBACK AFTER n SECONDS
voir aide

br

"vivi" wrote in message
news:
> je change bien de contexte de base mais cela ne ferme toujours pas la
> connexion,ni ne détache la base n'y a t-il pas moyen de forcer la
connnexion
> à se fermer?
>
> merci
>
> "Med Bouchenafa" wrote:
>
> > Le principe pour détacher une base de données par sp_detach_db est
qu'aucun utilisateur ne soit
> > connecté à cette base.
> > C'est pourquoi, je te demandais de passer sur Master afin de libérer la
base de ta propre connexion.
> > Il se trouve que dans le cas présent, il est fort possible que c'est ton
propre programme qui est
> > connecté.
> > Je connais pas ta chaîne de connexion pour te dire mais tu peux aisément
vérifier par sp_who
> > Si tu dois changer de contexte de base par programme, il faut utiliser
le ";" qui est le séparateur
> > d'instruction
> > sqlcom.CommandText = "Use master; EXEC sp_detach_db mabase, true"
> >
> >
> > --
> > Bien cordialement
> > Med Bouchenafa
> >
> > "vivi" a écrit dans le message de news:
> >
> > > merci med mais quel est la syntaxe exacte parce que j'essaye de
l'incorporer
> > > dans une commande sql mais la syntaxe est inexacte...
> > >
> > >
> > > sqlcom.CommandText = "Use master" & " go" & " EXEC sp_detach_db
> > > > sqlcom.ExecuteNonQuery()
> > >
> > > "Med Bouchenafa" wrote:
> > >
> > > > Il faut se positionner sur la base Master avant de faire la
manipulation
> > > > Use Master
> > > > go
> > > > sp_detach_db ....
> > > >
> > > > --
> > > > Bien cordialement
> > > > Med Bouchenafa
> > > >
> > > >
> > > > "vivi" a écrit dans le message de
news:
> > > >
> > > > > Bonjour
> > > > >
> > > > > j'essaye de détacher une base de données via la procédure stockée
> > > > > sp_detach_db dans mon code , j'ai verifié cette procédure
fonctionne.
> > > > >
> > > > > le probleme est que lorsque je fais une ouverture de base de cette
derniere
> > > > > puis une fermeture de base, et que j'essaye de la detacher j'ai un
message
> > > > > d'erreur 'impossible de detacher car elle est en cours
d'utilisation'
> > > > >
> > > > > je me suis dit ok fermons la connexion avant de la detacher
> > > > > j'utilise la procedure stockée sp_dboption mais le resultat est le
meme
> > > > > 'impossible de detacher car elle est en cours d'utilisation'
> > > > >
> > > > > je pense que un processus sql server est en cours
> > > > >
> > > > > j'aimerai fermer cette base et la detacher comment faire???
> > > > >
> > > > >
> >
> >
> >