lorsque vous essayez d'exécuter la requête suivante afin de créer une nouvelle base de données:
CREATE DATABASE [Lunch]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'Lunch',
FILENAME = N'E:\Data Files\Lunch.mdf' ,
SIZE = 110592KB , FILEGROWTH = 1048576KB ),
FILEGROUP [DATA]
( NAME = N'Lunch_Data',
FILENAME = N'E:\Data Files\Lunch_Data.ndf' ,
SIZE = 110592KB , FILEGROWTH = 1048576KB ),
FILEGROUP [NONCLUSTERED_INDEXES]
( NAME = N'Lunch_nonclusteredindexes',
FILENAME = N'E:\Data Files\Lunch_nonclusteredindexes.ndf' ,
SIZE = 110592KB , FILEGROWTH = 1048576KB )
LOG ON
( NAME = N'Lunch_log',
FILENAME = N'F:\logFiles\Lunch_log.ldf' ,
SIZE = 524288KB ,
FILEGROWTH = 524288KB )
GO
Obtention du message d'erreur suivant:
Msg 1807, niveau 16, état 3, ligne 1
Impossible d'obtenir un verrou exclusif sur le modèle de la base de données.
Recommencez l'opération ultérieurement.
Msg 1802, niveau 16, état 4, ligne 1
Échec de CREATE DATABASE.
Certains noms de fichiers répertoriés n'ont pas pu être créés. Vérifiez les erreurs associées.
qu'est-ce qui utilise la base de données de modèles et ne me permet pas d'obtenir le verrou exclusif?
Votre base de données model
est locked
maintenant donc ce que vous devez faire est de trouver la session qui a un lock
dessus, cela peut être fait en utilisant sys.dm_tran_locks
:
select request_session_id
from sys.dm_tran_locks
where resource_type = 'database' and
resource_database_id = 3 and
request_type = 'LOCK' and
request_status = 'GRANT';
L'approche mentionnée dans une autre réponse ne peut pas fonctionner s'il n'y avait pas de base de données request
à model
, vous pouvez avoir un utilisateur qui vient d'ouvrir la fenêtre de requête SSMS
avec le contexte de model
base de données et n'y a jamais exécuté de requête, mais cette session détient toujours S
verrou sur database
ressource.