У меня есть система MS SQL Server 2008 Express, которая содержит базу данных, которую я хотел бы «копировать и переименовывать» (для целей тестирования), но я не знаю простого способа добиться этого.
Я заметил, что в версии SQL Server R2 есть мастер копирования баз данных, но, к сожалению, я не могу выполнить обновление.
База данных, о которой идет речь, - это концерт. Я попытался восстановить резервную копию базы данных, которую я хочу скопировать в новую базу данных, но безуспешно.
Ответы:
Установите Microsoft SQL Management Studio, которую можно бесплатно загрузить с веб-сайта Microsoft:
Версия 2008
Microsoft SQL Management Studio 2008 является частью SQL Server 2008 Express с расширенными службами
Версия 2012
Нажмите кнопку загрузки и проверьте
ENU\x64\SQLManagementStudio_x64_ENU.exe
Версия 2014
Нажмите кнопку загрузки и проверьте MgmtStudio
64BIT\SQLManagementStudio_x64_ENU.exe
Откройте Microsoft SQL Management Studio .
источник
Щелкните правой кнопкой мыши базу данных, чтобы клонировать, щелкните
Tasks
, щелкнитеCopy Database...
. Следуйте указаниям мастера, и все готово.источник
Вы можете попытаться отсоединить базу данных, скопировать файлы с новыми именами в командной строке, а затем присоединить обе базы данных.
В SQL:
В командной строке (я упростил пути к файлам ради этого примера):
В SQL снова:
источник
select * from OriginalDB.sys.sysfiles
найти расположение файлов БД.Permission denied
в.mdf
файле. Мне это сейчас не нужно, мне просто нужна была резервная копия исходной БД, поэтому я могу позже перезаписать исходную БД, мне просто любопытно, почему я получаю такую ошибку.exec sp_helpdb @dbname='TEMPDB';
Оказывается, я попытался восстановить из резервной копии неправильно.
Сначала я создал новую базу данных, а затем попытался восстановить резервную копию здесь. Что я должен был сделать, и что сработало в итоге, это вызвать диалог восстановления и ввести имя новой базы данных в поле назначения.
Короче говоря, восстановление из резервной копии сделало свое дело.
Спасибо за все отзывы и предложения, ребята
источник
Это сценарий, который я использую. Немного сложно, но это работает. Протестировано на SQL Server 2012.
источник
SET @sourceDb_log = (SELECT files.name FROM sys.databases dbs INNER JOIN sys.master_files files ON dbs.database_id=files.database_id WHERE dbs.name=@sourceDb AND files.type=1)
отдельная переменная для @sourceDb_data с аналогичным запросом (подстановка вfiles.type=0
). НТН!Ни одно из упомянутых здесь решений не помогло мне - я использую SQL Server Management Studio 2014.
Вместо этого мне пришлось снять флажок «Резервное копирование журналов перед восстановлением» на экране «Параметры»: в моей версии он установлен по умолчанию и не позволяет завершить операцию восстановления. После снятия флажка операция восстановления прошла без проблем.
источник
Используя MS SQL Server 2012, вам нужно выполнить 3 основных шага:
Сначала создайте
.sql
файл, содержащий только структуру исходной БД.sql
файл локальноВо-вторых, замените исходную БД на целевую в
.sql
файлеНаконец, заполните данные
Data Source=Mehdi\SQLEXPRESS;Initial Catalog=db_test;User ID=sa;Password=sqlrpwrd15
Вы сделали.
источник
В SQL Server 2008 R2 создайте резервную копию базы данных в виде файла в папке. Затем выберите вариант восстановления, который отображается в папке «База данных». В мастере введите новое имя, которое вы хотите в целевой базе данных. И выберите восстановление из файла и используйте только что созданный файл. Я только что сделал это, и это было очень быстро (моя БД была маленькой, но все же) Пабло.
источник
Если база данных не очень велика, вы можете посмотреть команды «База данных сценариев» в SQL Server Management Studio Express, которые находятся в контекстном меню рядом с самим элементом базы данных в проводнике.
Вы можете выбрать, что все для сценария; Вы хотите, чтобы объекты и данные, конечно. Затем вы сохраните весь скрипт в один файл. Затем вы можете использовать этот файл для повторного создания базы данных; просто убедитесь, что
USE
команда в верхней части настроена на соответствующую базу данных.источник
Решение, основанное на этом комментарии: https://stackoverflow.com/a/22409447/2399045 . Просто установите настройки: имя БД, временная папка, папка файлов базы данных. А после запуска у вас будет копия БД с именем в формате «sourceDBName_yyyy-mm-dd».
источник
Сценарий, основанный на ответе Джо ( отсоединение, копирование файлов, вложение обоих ).
Это не обязательно, но возможно ошибка доступа запрещена при выполнении.
@dbName
и@copyDBName
переменные раньше.источник
Вы можете просто создать новую базу данных, а затем перейти к задачам, импортировать данные и импортировать все данные из базы данных, которую вы хотите дублировать, в базу данных, которую вы только что создали.
источник
Другой способ сделать это с помощью мастера импорта / экспорта , сначала создать пустую базу данных, затем выбрать источник, который является вашим сервером с исходной базой данных, а затем в месте назначения выбрать тот же сервер с базой данных назначения (используя пустую базу данных). вы создали сначала), затем нажмите финиш
Он создаст все таблицы и перенесет все данные в новую базу данных,
источник