SQL Server 2014 Создание копии существующей базы данных

Я пытался сделать копию базы данных SQL Server (2014 г.), и рекомендуемый способ сделать это с помощью SQL Server Management Studio выглядит следующим образом.

Right Click Database >
    Tasks >
        Generate Scripts >
            Advanced (Schema and Data) (Single file per object)

Затем мне нужно обновить ссылки на имя базы данных, чтобы использовать новое имя базы данных.

Это не сработает для меня, потому что некоторые из объектных файлов, которые он выводит, могут иметь размер более ГБ, что означает, что я не могу открыть файл, чтобы изменить имя базы данных.

Есть ли другой способ создать копию базы данных в новую базу данных с другим именем?


person TheLovelySausage    schedule 28.09.2016    source источник
comment
Безусловно, самый простой способ с точки зрения точности - сделать резервную копию и восстановить ее под другим именем. По какой причине это не вариант?   -  person Jeroen Mostert    schedule 28.09.2016
comment
Я думал, что это то, что я пытался сделать выше, если не в чем процесс?   -  person TheLovelySausage    schedule 28.09.2016
comment
Резервное копирование и восстановить. Обязательно используйте резервную копию только для копирования, если это производственная база данных.   -  person Jeroen Mostert    schedule 28.09.2016
comment
Ого, я не понимал, что существует совершенно другая процедура для создания резервной копии, которая отлично работала и была очень быстрой. Большое спасибо за вашу помощь   -  person TheLovelySausage    schedule 28.09.2016


Ответы (2)


Я использую для этого этот скрипт.

declare @nameSuffix varchar(50) = 'DB_NEW_NAME'
declare @path varchar(250) = 'C:\Program Files\Microsoft SQL Server\YOUR PATH\MSSQL\'
declare @backupfile varchar(250) = @path + 'Backup\' + @nameSuffix + '.bak'
declare @moveFile varchar(300) = @path + 'DATA\' + @nameSuffix + '.mdf'
declare @moveLogFile varchar(300) = @path + 'DATA\' + @nameSuffix + '_log.ldf'

backup database DB1
to disk = @backupfile
with init, noformat, skip, stats=10

use master

restore database DB_NEW_NAME
from disk = @backupfile 
with replace,
 recovery,
move 'DB1' to @moveFile,
move 'DB1_Log' to @moveLogFile
person GuidoG    schedule 28.09.2016
comment
Это сценарий TSQL? - person TheLovelySausage; 28.09.2016
comment
да, вы можете запустить его из SQL Server Management Studio. Просто сначала проверьте путь, чтобы у вас было правильное значение в переменной @path - person GuidoG; 28.09.2016
comment
Мне очень, очень нравится этот ответ, потому что я стараюсь как можно больше сохранять процедуры в коде, но я не знаком с TSQL и не уверен, что это за два дополнительных файла (mdf и ldf) - person TheLovelySausage; 28.09.2016
comment
MDF - это ваша база данных, а LDF - это файл журнала вашей базы данных. Если ваша база данных называется DB1, тогда будут файлы DB1.mdf и DB1_log.ldf. - person GuidoG; 28.09.2016
comment
Этот сценарий делает резервную копию DB1, а затем восстанавливает ее в DB_NEW_NAME, а затем изменяет ссылки, которые сервер sql имеет на DB1, на DB_NEW_NAME внутри базы данных копии, так что DB_NEW_NAME полностью независим от DB1 - person GuidoG; 28.09.2016

вы можете скопировать базу данных:

щелкните правой кнопкой мыши базу данных, которую нужно скопировать> задачи> скопировать базу данных

мастер базы данных поможет вам создать новую копию.

дополнительные ресурсы здесь: https://msdn.microsoft.com/en-us/library/ms188664.aspx

person hermione    schedule 28.09.2016
comment
Привет, гермиона, в моей установке нет опции Копировать базу данных - person TheLovelySausage; 28.09.2016
comment
Ясно, не могли бы вы дать нам версию / редакцию базы данных и студию управления? - person hermione; 28.09.2016
comment
Это SQL Server Management Studio 2014 (Essentials) - person TheLovelySausage; 28.09.2016
comment
возможно, если вы попробуете ответить здесь ‹stackoverflow.com/a/12407848/3078077 ›это ночная работа для вас - person hermione; 28.09.2016