2013-04-05 3 views
1

У меня есть база данных «Моя база данных», которую я бы хотел переименовать, чтобы не было пробелов. Я пытался переименовать его с помощьюИзменение имени базы данных SQL Fails Sql Server 2008

use master 
exec sp_renamedb 'I 3 SCI Study','I3SciStudy' 

и был встречен с ошибкой

Msg 5030, Level 16, State 2, Line 1 
The database could not be exclusively locked to perform the operation. 

Этот сервер является моей локальной машине, и у меня нет никаких других окон запроса открыта, но окно, в котором я столкнулся запрос переименования , Есть ли какая-то команда закрытия соединения, которую мне нужно запустить, прежде чем я могу переименовать базу данных?

+3

См. [Этот вопрос] (http://stackoverflow.com/questions/11014343/how-to-rename-database-in-multi-user-mode) и [этот] (http://stackoverflow.com/questions/525185/sql-server-database-locked). Обратите внимание, что 'sp_renamedb' [устарел] (http://msdn.microsoft.com/en-us/library/ms186217.aspx). – Pondlife

+1

Попробуйте поместить базу данных в однопользовательском режиме – Paparazzi

+0

Можете ли вы остановить Sql Server SERVICE (Панель управления/Инструменты/Сервис/Сервис), а затем попробовать. Это наверняка отключит все соединения. – granadaCoder

ответ

-1

Используйте SSMS для переименования базы данных, вам не должно быть никаких проблем с этим.

+0

Это довольно круглое решение, хотя и потенциальное обходное решение. – Murkantilism

0

Попробуйте эту команду, но следует с осторожностью:

USE master; 
ALTER DATABASE [dbname] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
GO 

ALTER DATABASE [dbname] SET MULTI_USER; 
GO 
0

Также вы можете опрашивать информацию о текущих активных менеджер блокировки ресурсов.

SELECT * 
FROM sys.dm_tran_locks DTL 
WHERE DTL.[resource_database_id] = DB_ID() 

Каждая строка представляет текущий активный запрос менеджеру блокировки для блокировки, которая была предоставлена ​​или ожидает предоставления. Вы увидите не только ваш запрос на текущую базу данных (скорее всего, с помощью базы данных resoure_type). Невозможно изменить имя базы данных, пока эти ресурсы заблокированы.