Эквивалент mysqldump для SQL Server

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

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

В основном ищу одно решение, которое хватит все, что мне нужно, сразу.

Пожалуйста, пересмотрите свой выбор правильного ответа. Ответ, относящийся к amScript, лучше всего отвечает на ваш вопрос. Ответ, который вы отметили как правильный, предлагает только обходной путь; люди, которые найдут ваш вопрос в Google, не найдут этот ответ очень полезным.

Timwi 17.09.2009 20:39
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
20
1
14 626
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

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

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

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

Я предполагаю, что проблема в том, чтобы выяснить, что ожидает новая услуга в отношении формата ... Мы перемещаем веб-сайт и его БД с выделенного сервера win на провайдер общего хостинга, и самое близкое, что я могу получить, - это через plesk.

David 17.09.2008 21:39

1-й mysqldump - это команда. DTS вы нажимаете. Вы не можете автоматизировать это. 2-й. Команда резервного копирования записывается на жесткий диск сервера. 3-е клики сложно автоматизировать

graffic 29.01.2009 10:29

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

или запишите все таблицы и BCP из данных, затем BCP в данные на новом сервере

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

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

Вы также можете использовать команды BACKUP и RESTORE. Подробнее здесь: http://msdn.microsoft.com/en-us/library/ms189826.aspx

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

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

Сейчас мы обычно используем Сравнение SQL и Сравнение данных SQL. Red Gate Упаковщик 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/.

Как ответ на заголовок вопроса, инструменты ampScript / Insert - это именно то, что я искал. +1

Hafthor 02.09.2009 20:43

С обоими инструментами вы не можете фильтровать по схеме перед загрузкой базы данных. С amScript 150 000 таблиц загружаются за 30 секунд. amInsert не будет вести себя так же, если не загрузит эти таблицы.

Guillaume Massé 02.11.2011 23:25

Веб-сайт amScript не работает, и я не могу найти эту утилиту в Google. На GitHub есть пара альтернатив командной строки на стадии бета-тестирования для mssql, но я еще не видел ничего отлаженного.

Daniel Byrne 14.05.2013 20:09

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

  • Открытый исходный код
  • Свободный
  • Делает именно то, что вы хотите
  • Разработано Microsoft

У него нет всех возможностей mysqldump, но он достаточно близок.

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

Как мне это запустить? Их загрузка не содержит ни EXE-файла, который я мог бы запустить, ни какого-либо файла SLN или CSPROJ, который я мог бы открыть в Visual Studio. Кроме того, я замечаю МНОГО комментариев с просьбами о помощи в том, как это использовать. У меня складывается впечатление, что это самый дерьмовый кусок хлама на свете!

Timwi 17.09.2009 19:34

и это даже близко не к mysqldump!

Robert Ivanc 18.05.2010 21:45

Мастер веб-публикации не работает для SQL Server 2008. И другой автор прав, он даже близко не подходит к mysqldump. Я все еще ищу хорошую утилиту для SQL Server, которая делает хотя бы часть того, что может делать mysqldump.

Ryan Stille 23.09.2010 06:13

На самом деле он отлично поддерживает Sql Server 2008. И да, он не такой мощный, как mysqldump, но если в нем есть все необходимые вам функции, то кого это волнует? Ссылка выше устарела, текущая версия что-то вроде 1.4 или 1.5.

Erick 13.10.2010 18:33

@RobertIvanc В то время и на сегодняшний день было неприятно, что не было готовой командной строки / исполняемого файла с поддержкой сценариев, но это был самый простой вариант, который я мог найти. К сожалению, это работает.

David 21.11.2018 05:08

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

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

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

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

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

Ответ принят как подходящий

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

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

location of tool

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

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

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

adding data to the script

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

Это слишком много пользовательского интерфейса. Можно ли это просто сделать через командную строку?

Felix Eve 20.11.2018 16:09

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

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

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

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