Каков наилучший способ автоматического создания операторов INSERT для таблицы SQL Server? - PullRequest
535 голосов
/ 11 июня 2009

Мы пишем новое приложение, и во время тестирования нам понадобится куча фиктивных данных. Я добавил эти данные с помощью MS Access для выгрузки файлов Excel в соответствующие таблицы.

Время от времени мы хотим «обновить» соответствующие таблицы, что означает удаление их всех, их повторное создание и запуск сохраненного запроса на добавление MS Access.

Первая часть (удаление и повторное создание) представляет собой простой сценарий sql, но последняя часть заставляет меня съеживаться. Я хочу один сценарий установки, который имеет набор вставок для восстановления фиктивных данных.

У меня есть данные в таблицах. Каков наилучший способ автоматически создать большой список операторов INSERT из этого набора данных?

Единственный способ сделать это - сохранить таблицу на листе Excel, а затем написать формулу Excel, чтобы создать INSERT для каждой строки, что, безусловно, не лучший способ.

Я использую Management Studio 2008 для подключения к базе данных SQL Server 2005.

Ответы [ 20 ]

4 голосов
/ 12 июля 2009

Возможно, вы можете попробовать мастер публикации SQL Server http://www.microsoft.com/downloads/details.aspx?FamilyId=56E5B1C5-BF17-42E0-A410-371A838E570A&displaylang=en

У него есть мастер, который поможет вам сценарий вставки операторов.

4 голосов
/ 08 сентября 2016

GenerateData - замечательный инструмент для этого. Это также очень легко сделать настройки, потому что исходный код доступен для вас. Несколько приятных особенностей:

  • Генератор имен для имен и мест людей
  • Возможность сохранить профиль Generation (после его загрузки и настройки локально)
  • Возможность настройки и управления генерацией с помощью сценариев
  • Множество разных выходов (CSV, Javascript, JSON и т. Д.) Для данных (на случай, если вам нужно протестировать набор в разных средах и пропустить доступ к базе данных)
  • Free . Но подумайте о пожертвовании, если вы найдете это программное обеспечение полезным:).

GUI

4 голосов
/ 11 июня 2009

Не используйте вкладыши, используйте BCP

3 голосов
/ 22 марта 2010

Я использовал этот скрипт , который я разместил в своем блоге ( Как сгенерировать процедуры вставки операторов на сервере sql ).

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

2 голосов
/ 22 июля 2009

Я использую sqlite для этого. Я нахожу это очень, очень полезным для создания тестовых / тестовых баз данных.

sqlite3 foo.sqlite .dump > foo_as_a_bunch_of_inserts.sql

1 голос
/ 11 июня 2009

У вас уже есть данные в производственной базе данных? Если это так, вы можете установить период обновления данных через DTS. Мы проводим наши еженедельные выходные, и очень приятно иметь чистые реальные данные каждую неделю для нашего тестирования.

Если у вас еще нет производства, то вам следует создать базу данных, которая будет вам нужна (свежо). Затем продублируйте эту базу данных и используйте эту вновь созданную базу данных в качестве тестовой среды. Если вам нужна чистая версия, просто дублируйте свою чистую версию еще раз и Боб ваш дядя .

1 голос
/ 23 мая 2019

Если вы предпочитаете использовать Google Sheets, используйте SeekWell , чтобы отправить таблицу на лист, а затем вставьте строки в расписание по мере их добавления в лист.

См. здесь для пошагового процесса или посмотрите демонстрацию видео этой функции здесь.

0 голосов
/ 11 июня 2009

Не уверен, правильно ли я понимаю ваш вопрос.

Если у вас есть данные в MS-Access, которые вы хотите перенести на SQL Server - вы можете использовать DTS.
И, я полагаю, вы могли бы использовать профилировщик SQL для просмотра всех операторов INSERT, я полагаю.

0 голосов
/ 11 июня 2009

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

если вам нужно сгенерировать вставки, попробуйте: http://vyaskn.tripod.com/code.htm#inserts

0 голосов
/ 16 июля 2009

Я также много исследовал это, но я не мог найти конкретное решение для этого. В настоящее время я придерживаюсь подхода, который заключается в том, чтобы скопировать содержимое в excel из студии управления SQL Server, а затем импортировать данные в Oracle-TOAD и затем сгенерировать операторы вставки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...