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





Что ж, 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.
1-й mysqldump - это команда. DTS вы нажимаете. Вы не можете автоматизировать это. 2-й. Команда резервного копирования записывается на жесткий диск сервера. 3-е клики сложно автоматизировать
проще всего было бы сделать резервную копию и восстановить или отсоединить и прикрепить
или запишите все таблицы и 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
С обоими инструментами вы не можете фильтровать по схеме перед загрузкой базы данных. С amScript 150 000 таблиц загружаются за 30 секунд. amInsert не будет вести себя так же, если не загрузит эти таблицы.
Веб-сайт amScript не работает, и я не могу найти эту утилиту в Google. На GitHub есть пара альтернатив командной строки на стадии бета-тестирования для mssql, но я еще не видел ничего отлаженного.
Самый простой способ - это мастер публикации базы данных sql server.
У него нет всех возможностей mysqldump, но он достаточно близок.
http://www.codeplex.com/sqlhost/wiki/view.aspx?title=database%20publishing%20wizard
Как мне это запустить? Их загрузка не содержит ни EXE-файла, который я мог бы запустить, ни какого-либо файла SLN или CSPROJ, который я мог бы открыть в Visual Studio. Кроме того, я замечаю МНОГО комментариев с просьбами о помощи в том, как это использовать. У меня складывается впечатление, что это самый дерьмовый кусок хлама на свете!
и это даже близко не к mysqldump!
Мастер веб-публикации не работает для SQL Server 2008. И другой автор прав, он даже близко не подходит к mysqldump. Я все еще ищу хорошую утилиту для SQL Server, которая делает хотя бы часть того, что может делать mysqldump.
На самом деле он отлично поддерживает Sql Server 2008. И да, он не такой мощный, как mysqldump, но если в нем есть все необходимые вам функции, то кого это волнует? Ссылка выше устарела, текущая версия что-то вроде 1.4 или 1.5.
@RobertIvanc В то время и на сегодняшний день было неприятно, что не было готовой командной строки / исполняемого файла с поддержкой сценариев, но это был самый простой вариант, который я мог найти. К сожалению, это работает.
Еще проще использовать SMO API. Он позволяет вам делать то же самое, что и mysqldump, и даже лучше. Вот пример кода:
http://samyem.blogspot.com/2010/01/automate-sql-dumps-for-sqlserver.html
Две вещи, которые не выполняет резервное копирование / восстановление:
Не найдя подходящего инструмента, я решил создать свой собственный: утилиту командной строки sqlserverdump. Проверьте это на github.
1.) Щелкните правой кнопкой мыши базу данных (не таблицу) и выберите Задачи -> Создать сценарии.

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

5.) Просмотрите остальные, и все готово! Он будет сохранен как файл .sql.
Это слишком много пользовательского интерфейса. Можно ли это просто сделать через командную строку?
Если вам нужны эквивалентные операторы SQL, такие как CREATE TABLE ... & INSERT INTO ..., я рекомендую вам попробовать HeidiSQL. Это фантастическая и бесплатная утилита, которая может получить доступ к Microsoft SQL Server, MySQL и PostgreSQL. Он позволяет просматривать и редактировать данные, создавать и редактировать таблицы, представления, процедуры, триггеры и запланированные события. Также вы можете экспортировать структуру и данные в файл SQL. http://www.heidisql.com
Перейдите в Инструменты / Экспорт базы данных как SQL и выберите схему. Установите флажок, чтобы создать таблицы и «Вставить» данные. Вот и все.
Я предпочитаю HeidiSQL "Microsoft SQL Server Management Studio" или phpMyAdmin ... и т. д.
Пожалуйста, пересмотрите свой выбор правильного ответа. Ответ, относящийся к amScript, лучше всего отвечает на ваш вопрос. Ответ, который вы отметили как правильный, предлагает только обходной путь; люди, которые найдут ваш вопрос в Google, не найдут этот ответ очень полезным.