Я использую этот запрос для переименования базы данных:
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
Но это показывает ошибку при исключении:
Сообщение 5030, уровень 16, состояние 2, строка 1
Не удалось заблокировать базу данных для выполнения операции.
Что-то не так с моим запросом?
sql
sql-server
sql-server-2008-r2
Викрам Бозе
источник
источник
Ответы:
Вы можете попробовать установить базу данных в однопользовательский режим.
https://stackoverflow.com/a/11624/2408095
источник
WITH ROLLBACK IMMEDIATE
необходимо. Если я вообще им не пользуюсь, это вызовет проблемы?WITH ROLLBACK IMMEDIATE
при изменении базы данных, над которой могут работать другие пользователи, чтобы обеспечить целостность этих операций. Но в действительности это не является необходимым при повторной установке базы данных в режим MULTI_USER, поскольку база данных уже находится в режиме SINGLE_USER, и вы все равно единственный пользователь, способный выполнять любые транзакции.Установите базу данных в одиночный режим:
Попробуйте переименовать базу данных:
Установите базу данных в многопользовательский режим:
источник
WITH ROLLBACk IMMEDIATE
для многопользовательских?В SQL Server Management Studio (SSMS) :
Вы также можете щелкнуть правой кнопкой мыши свою базу данных в Обозревателе объектов и перейти в Свойства . Оттуда перейдите в Настройки . Прокрутите весь путь вниз и установите для параметра « Ограничить доступ» значение SINGLE_USER . Измените имя вашей базы данных, затем вернитесь и установите его обратно в MULTI_USER .
источник
Попробуйте сначала закрыть все соединения с вашей базой данных:
Взято отсюда
источник
Это сделало это для меня:
источник
Это потому, что кто-то другой обращается к базе данных. Переведите базу данных в однопользовательский режим, затем переименуйте ее.
Эта ссылка может помочь:
http://msdn.microsoft.com/en-IN/library/ms345378(v=sql.105).aspx
а также:
http://msdn.microsoft.com/en-us/library/ms345378.aspx
источник
Переведите базу данных в однопользовательский режим, как показано в других ответах.
Иногда даже после преобразования в однопользовательский режим может использоваться только одно соединение, разрешенное для базы данных.
Чтобы закрыть соединение даже после перехода в однопользовательский режим, попробуйте:
Посмотрите на результаты и посмотрите идентификатор соединения с рассматриваемой базой данных.
Затем используйте команду ниже, чтобы закрыть это соединение (должно быть только одно, поскольку база данных теперь находится в однопользовательском режиме)
Замените connection_id на идентификатор в результатах 1-го запроса
источник
1. база данных устанавливает 1-й однопользовательский режим
ALTER DATABASE BOSEVIKRAM УСТАНОВИЛ SINGLE_USER С ОТКРЫТИЕМ ROLLBACK
2. переименовать базу данных
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
3.DATABAE SET MULIUSER MODE
ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER с немедленным отступом
источник
Еще один способ закрыть все соединения:
Администрирование> Просмотр локальных сервисов
Остановить / запустить службу «SQL Server (MSSQLSERVER)»
источник
источник