kzen.dev
  • Questions
  • Tags
  • Utilisateurs
Notifications
Récompenses
Inscription
Une fois inscrit, vous serez informé des réponses et des commentaires à vos questions.
Connectez-vous
Si vous avez déjà un compte, connectez-vous pour vérifier les nouvelles notifications.
Il y aura des récompenses pour les questions, réponses et commentaires ajoutés.
Détails
Source
Editer
 Adam
Adam
Question

Comment tuer toutes les connexions actuelles à une base de données SQL Server 2005 ?

Je veux renommer une base de données, mais je continue à obtenir l'erreur suivante : " couldn't get exclusive lock&#39 ; on the database, which implies there is some connection(s) still active(s) ".

Comment puis-je tuer toutes les connexions à la base de données afin de pouvoir la renommer ?

284 2008-08-14T19:54:25+00:00 3
Tom H
Tom H
Question modifiée 13 juillet 2010 в 2:28
Programmation
sql-server-2005
sql-server
Cette question a 1 réponse en anglais, pour les lire connectez-vous à votre compte.
Solution / Réponse
 SQLMenace
SQLMenace
14 août 2008 в 7:56
2008-08-14T19:56:56+00:00
Détails
Source
Editer
#8415339

Voir [Kill All Active Connections To A Database][1].

La raison pour laquelle l&#8217approche suggérée par [Adam] (https://stackoverflow.com/questions/11620/how-do-you-kill-all-current-connections-to-a-sql-server-2005-database/11627#11627) ne fonctionne pas est que pendant le temps où vous passez en revue les connexions actives, de nouvelles connexions peuvent être établies et vous ne les verrez pas. L'article auquel j'ai fait référence utilise l'approche suivante qui ne présente pas cet inconvénient :

-- set your current connection to use master otherwise you might get an error

use master
ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE 

--do you stuff here 

ALTER DATABASE YourDatabase SET MULTI_USER

[1] : http://wiki.lessthandot.com/index.php/Kill_All_Active_Connections_To_A_Database

 Community
Community
Réponse modifiée 23 mai 2017 в 12:02
376
0
 Adam
Adam
14 août 2008 в 7:57
2008-08-14T19:57:15+00:00
Détails
Source
Editer
#8415340

Pour ce faire, remplacez 'DB_NAME&#39 ; par la base de données à laquelle vous souhaitez supprimer toutes les connexions :

USE master
GO

SET NOCOUNT ON
DECLARE @DBName varchar(50)
DECLARE @spidstr varchar(8000)
DECLARE @ConnKilled smallint
SET @ConnKilled=0
SET @spidstr = ''

Set @DBName = 'DB_NAME'
IF db_id(@DBName) < 4
BEGIN
PRINT 'Connections to system databases cannot be killed'
RETURN
END
SELECT @spidstr=coalesce(@spidstr,',' )+'kill '+convert(varchar, spid)+ '; '
FROM master..sysprocesses WHERE dbid=db_id(@DBName)

IF LEN(@spidstr) > 0
BEGIN
EXEC(@spidstr)
SELECT @ConnKilled = COUNT(1)
FROM master..sysprocesses WHERE dbid=db_id(@DBName)
END
110
0
John Christensen
John Christensen
14 août 2008 в 7:56
2008-08-14T19:56:56+00:00
Détails
Source
Editer
#8415338

Dans MS SQL Server Management Studio, dans l'explorateur d'objets, faites un clic droit sur la base de données. Dans le menu contextuel qui suit, sélectionnez 'Tasks -> Take Offline&#39 ;

4
0
Ajouter une question
Catégories
Toutes
Technologie
Culture / Loisirs
Vie / Arts
Science
Professionnel
Entreprises
Utilisateurs
Tous
Nouveau
Populaire
1
Ilya Smirnov
Enregistré il y a 5 jours
2
Денис Васьков
Enregistré il y a 1 semaine
3
Dima Patrushev
Enregistré il y a 1 semaine
4
sirojidddin otaboyev
Enregistré il y a 2 semaines
5
Елена Гайдамамакинат
Enregistré il y a 2 semaines
DE
ES
FR
ID
JA
KO
NL
PT
RO
RU
TR
ZH
© kzen.dev 2023
Source
stackoverflow.com
sous licence cc by-sa 3.0 avec l'attribution