Sql Server изменить данные и журнал путь существующей базы данных - PullRequest
10 голосов
/ 28 июля 2011

У меня установлена ​​SQL Server 2008 с почти 15 работающими базами данных. Теперь из-за нехватки места я хотел бы перенести путь данных на другой диск. Какова лучшая практика для этого. Пожалуйста, объясните подробно, если я включаю какие-либо команды SQL, поскольку я относительно новичок в администрировании SQL Server.

Примечание - Я уже изменил путь в свойствах сервера SQL с SQL Management Studio 2008 на новый путь. Но я также хотел бы, чтобы существующие базы данных располагались по новому пути .

Ответы [ 2 ]

12 голосов
/ 28 июля 2011

Сначала отсоедините базу данных:

USE master;
GO
-- Important! We need to drop the existing connections.
ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
EXEC sp_detach_db @dbname = N'DBName';
GO

Следующий шаг - скопируйте файлы .mdf и .ldf из файлов этой базы данных в новое местоположение

А затем присоедините базу данных:

USE master;
EXEC sp_attach_db @dbname = N'dbName', 
@filename1 = N'',  --path do .mdf
@filename2 = N'';  --path to .ldf
GO

Если вы не хотите подключать и отключать все базы данных по одному, вы можете сгенерировать сценарий SQL для подключения и отключения всех необходимых вам баз данных (кроме системы, конечно), используя curosr, который выполняет поиск в sys.динамическое представление управления базами данных.Но не забудьте скопировать файлы базы данных.

1 голос
/ 28 июля 2011

Один из способов - отсоединить и присоединить.

Что касается команд / шагов, см. Статью MSDN «Как переместить базу данных с помощью отсоединения и подключения (Transact-SQL)»

...