Изменить Collation MSSQL Server - The database could not be exclusively locked to perform the operation.

25:03:2011 Рі.

Место на MSSQL Server снимаю у буржуев, поэтому при создании новой базы данных постоянно нужно менять Collation. По умолчению установлена Latin1_General_CI_AS . Соответственно, если создать новую БД и занести туда данные на родном языке, то все что можно будет прочитать это "???????". Лучше заменить Collation на MSSQL Server сразу, чем потом иметь проблемы с перекодированием.

В заметке ниже рассматривается вопрос смены коллейшн и решение проблемы с эксклюзивной блокировкой базы данных для проведения операции.

Чтобы сменить Collation на MSSQL Server нужно выполнить запрос:
ALTER DATABASE имя_БД COLLATE Нужная_кодировка

Проблема может возникнуть следующего плана. При выполнении запроса может выскочить ошибка:

The database could not be exclusively locked to perform the operation.

Для того чтобы решить эту проблему, нашу базу данных нужно сначала заблокировать для эксклюзивного использования и лишь затем делать изменение Collation. Для этого немного меняем запрос, добавив в него две строки:

ALTER DATABASE имя_БД SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE имя_БД COLLATE нужная_кодировка
ALTER DATABASE имя_БД SET MULTI_USER


Все работает.

Проблему также можно решить средствами самой Management Studio MS SQL Server:

1) В свойствах базы данных (Database Properties) выбираем Опции (Options)
2) Меняем выделенный комбобокс на SINGLE_USER

 

 

 

 

Комментарии  

 
+1#3Максим2013-06-17 16:01Огромное спасибо! Помогло!Цитировать
 
 
+3#2Алина2013-03-18 21:03Спасибо! Вы меня спасли! :)Цитировать
 
 
+2#1PODbot2012-07-13 07:55спасибо за совет !

проверил - работает !
Цитировать
 

Добавить комментарий



Обновить

« Image.Source WPF в коде C# - как изменить   Saving changes is not permitted. The changes that you have made require the following tables to be dropped and re-created - MSSQL »
← Раньше

Фотоальбом

fotic.jpg

Облако Тегов