Вопрос

Существует ли эквивалентный инструмент экспорта / сброса схемы и данных для SQL Server, такой же, как для MySQL с mysqldump.Пытаюсь переместить устаревший сайт ASP, и я не в восторге от работы на сервере Windows.

Примечание:Собственная утилита экспорта DTS, похоже, экспортирует данные без определения таблицы.Использование Enterprise Manager и экспорт базы данных приближаются к экспорту схемы и данных...но по-прежнему не хватает хранимых процедур.

По сути, я ищу единое решение, которое бы хватало всего, что мне нужно, сразу.

Это было полезно?

Решение

Самый простой способ - это мастер публикации базы данных sql server.

  • Открытый исходный код
  • Бесплатно
  • Делает именно то, что вы хотите
  • Разработан корпорацией Майкрософт

Он не обладает всеми функциями mysqldump, но он достаточно близок к этому.

http://www.codeplex.com/sqlhost/wiki/view.aspx?title=database%20publishing%20wizard

Другие советы

Сделать это действительно легко с помощью SQL Server 2008 Management Studio:

1.) Щелкните правой кнопкой мыши по базе данных (не по таблице) и выберите Задачи -> Генерировать скрипты

location of tool

2.) Нажмите кнопку Далее на первой странице

3.) Если вы хотите скопировать всю базу данных, просто нажмите кнопку Далее.Если вы хотите скопировать определенные таблицы, нажмите "Выбрать конкретные объекты базы данных", выберите нужные таблицы и затем нажмите "Далее".

4.) следует выбрать "Сохранить в файл". ВАЖНЫЙ:Нажмите кнопку Дополнительно рядом с "Сохранить в файл", найдите "Типы данных для сценария" и измените "Только схема" на "Схема и данные" (если вы хотите создать таблицу) или "Только данные" (если вы копируете данные в существующую таблицу).

adding data to the script

5.) Щелкните по остальным, и все готово!Он будет сохранен в виде sql-файла.

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

Если вы ищете способ перенести структуру таблицы в SQL, а также создать сценарии вставки для данных, хорошим бесплатным вариантом было бы использовать amScript и amInsert из http://www.asql.biz/en/Download2005.aspx.

Если вам нужна хорошая платная версия, я бы посмотрел Red-Gate SQL Compare и Red-Gate SQL-Data Compare.Хотя эти инструменты, вероятно, излишни и, вероятно, немного дороговаты, если вы не собираетесь использовать их часто.Я бы подумал, что в основном это будет передано администраторам баз данных.Вы можете ознакомиться с инструментами Red-Gate по адресу http://www.red-gate.com/.

Не найдя подходящего инструмента, я решил создать свой собственный:утилита командной строки sqlserverdump.Проверьте это на http://sqlserverdump.codeplex.com/.

Еще проще - использовать SMO API.Это позволяет вам работать точно так же, как mysqldump, и даже лучше.Вот пример кода:

http://samyem.blogspot.com/2010/01/automate-sql-dumps-for-sqlserver.html

Ну, Mysqldump - это серия инструкций SQL.Вы можете сделать это с помощью DTS, но почему бы просто не создать резервную копию и не восстановить ее на вашем новом компьютере?

Если вы хотите сделать это с помощью SQL:http://msdn.microsoft.com/en-us/library/aa225964 (SQL.80).aspx

Или просто щелкните правой кнопкой мыши базу данных и выберите Задачи -> Резервное копирование (http://msdn.microsoft.com/en-us/library/ms187510.aspx)

проще всего было бы создать резервную копию и восстановить или отсоединить и присоединить

или создайте сценарий для всех таблиц и извлеките данные, а затем вставьте данные на новый сервер

или используйте DTS / SSIS для этого

SQL Enterprise Manager или SQL Server Management studio используют подходы, основанные на мастере, и последний сгенерирует сценарии, чтобы вы могли видеть, как это делается.

Вы также можете использовать команды резервного КОПИРОВАНИЯ и ВОССТАНОВЛЕНИЯ.Более подробно здесь: http://msdn.microsoft.com/en-us/library/ms189826.aspx

Если вы можете подключить DTS или Integration Services к обоим серверам, вы можете использовать мастера для "копирования объектов" с одного сервера на другой."Копировать базу данных" требует, чтобы два сервера могли проходить аутентификацию друг у друга, что обычно означает нахождение в одном домене и чтобы служба запускалась при входе в домен.

В противном случае вы можете сгенерировать сценарий для схемы и использовать пакет Integration Services / DTS для экспорта данных в файл, а затем импортировать их в другой.

Сейчас мы обычно используем Сравнение SQL и Сравнение данных SQL.Красные ворота SQL-упаковщик также может быть вариант.

Две вещи, которые резервное копирование / восстановление не выполнит:

  1. Отключитесь от сервера Microsoft, который был частью первоначального вопроса
  2. Помогает быстро найти структурное различие между двумя базами данных, которые должны иметь одинаковую структуру, когда одна из них работает медленно.Unix diff, или sdiff, игнорирующий пробелы, но нужен способ создавать входные файлы.

Если вам нужны эквивалентные инструкции SQL, такие как CREATE TABLE...& ВСТАВИТЬ В ..., тогда я рекомендую вам попробовать HeidiSQL.Это фантастическая бесплатная утилита, которая может получить доступ к Microsoft SQL Server, MySQL и PostgreSQL.Это позволяет вам просматривать и редактировать данные, создавать и редактировать таблицы, представления, процедуры, триггеры и запланированные события.Кроме того, вы можете экспортировать структуру и данные в SQL-файл.http://www.heidisql.com

Перейдите в раздел Инструменты / Экспорт базы данных в формате SQL и выберите схему.Установите флажок, чтобы создать таблицы и “Вставить” данные.Вот и все.

Я предпочитаю HeidiSQL "Microsoft SQL Server Management Studio" или phpMyAdmin...и т.д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top