Как переименовать базу данных MS SQL Server

 

Для переименования базы проще всего создать новую и сделать в нее restore из бэкапа старой базы. При этом не забыв переименовать физические имена файлов на новые.

Но иногда возникает необходимость сделать это через T-SQL,
тогда это можно сделать так, на примере переименования
базы 'okrug' в 'okrug_2006'

Сначала меняем имя базы, это можно сделать либо так: 

sp_renamedb 'okrug' , 'okrug_2006'

 

либо так:

ALTER DATABASE 'okrug' MODIFY NAME = 'okrug_2006'



Но это только изменилось имя базы данных, теперь надо поменять логические и физческие имена файлов.

Для замены логических имен файлов выполняем
сначала для файла данных:

ALTER DATABASE okrug_2006
MODIFY FILE (NAME = 'okrug_Data', NEWNAME = 'okrug_2006_Data')



затем для файла логов транзакций:

ALTER DATABASE test2
MODIFY FILE (NAME = 'okrug_Log', NEWNAME = 'okrug_2006_Log')



Ну и наконец чтобы привести все в соответствие изменяем физические имена файлов. Для этого делаем для базы Detach, затем переименовываем руками файл базы и ее лог в новые имена okrug_2006.mdf и okrug_2006.ldf и проводим операцию подключения базы (Attach).
При этом находим нужный переименованный файл базы, лог при этом найдется по-умолчению сам, но при этом будут напротив этих файлов стоять красные "кресты", поскольку имена файлов отображаются старые. Переименовываем их в соответствии с новыми файлами и красные "кресты" становятся зелеными галками. ОК.

Вот и все, старая база имеет новое имя и соответствующие ей физические и логические имена.

Комментарии закрыты