Мы пишем новое приложение, и во время тестирования нам потребуется куча фиктивных данных. Я добавил эти данные с помощью MS Access для выгрузки файлов Excel в соответствующие таблицы.
Время от времени мы хотим «обновить» соответствующие таблицы, что означает их удаление, повторное создание и запуск сохраненного запроса на добавление MS Access.
Первая часть (удаление и повторное создание) представляет собой простой сценарий SQL, но последняя часть заставляет меня съеживаться. Я хочу один сценарий установки, который имеет набор вставок для регенерации фиктивных данных.
У меня есть данные в таблицах сейчас. Каков наилучший способ автоматически создать большой список операторов INSERT из этого набора данных?
Единственный способ сделать это - сохранить таблицу в таблице Excel, а затем написать формулу Excel, чтобы создать INSERT для каждой строки, что, безусловно, не лучший способ.
Я использую Management Studio 2008 для подключения к базе данных SQL Server 2005.
источник
Ответы:
Microsoft должна объявить об этой функции SSMS 2008. Функция, которую вы ищете, встроена в утилиту Generate Script , но эта функция отключена по умолчанию и должна быть включена при создании сценариев таблицы.
Это быстрый способ создания
INSERT
операторов для всех данных в вашей таблице без использования сценариев или надстроек в SQL Management Studio 2008:Затем вы получите
CREATE TABLE
выписку и всеINSERT
выписки для данных прямо из SSMS.источник
Data only
и обнаружилиCyclic dependencies found
ошибку, переключитесь на,Schema and data
чтобы избежать ошибки. Бывает в Management Studio v17.Мы используем эту хранимую процедуру - она позволяет вам ориентироваться на конкретные таблицы и использовать предложения where. Вы можете найти текст здесь .
Например, это позволяет вам сделать это:
Исходный код скопирован по ссылке:
источник
Как упомянуто @Mike Ritacco, но обновлено для SSMS 2008 R2
Затем вы получите все операторы INSERT для данных прямо из SSMS.
РЕДАКТИРОВАТЬ 2016-10-25 SQL Server 2016 / SSMS 13.0.15900.1
Щелкните правой кнопкой мыши на имени базы данных
Выберите «Задачи»> «Создать сценарии».
В зависимости от ваших настроек страница вступления может отображаться или нет
Выберите «Выбрать конкретные объекты базы данных»,
Разверните дерево и проверьте соответствующие таблицы
Нажмите кнопку "Далее
Нажмите Дополнительно
В разделе «Общие» выберите соответствующий параметр «Типы данных для сценария».
Нажмите ОК
Укажите, хотите ли вы, чтобы выходные данные переходили к новому запросу, буферу обмена или файлу
Нажмите Next дважды
Ваш скрипт подготовлен в соответствии с настройками, которые вы выбрали выше
Нажмите Готово
источник
Это можно сделать с помощью
Visual Studio
тоже (по крайней мере, в версии 2013 года).В VS 2013 также можно фильтровать список строк, на которых основан оператор insert, что, как я знаю, в SSMS невозможно.
Выполните следующие шаги:
Это создаст (условные) операторы вставки для выбранной таблицы в активное окно или файл.
Кнопки «Фильтр» и «Скрипт» Visual Studio 2013 :
источник
Вы можете использовать SSMS Tools Pack (доступно для SQL Server 2005 и 2008). Он поставляется с функцией генерации операторов вставки.
http://www.ssmstoolspack.com/
источник
Я использую SSMS 2008 версии 10.0.5500.0. В этой версии в составе мастера создания сценариев вместо кнопки «Дополнительно» имеется экран ниже. В этом случае я хотел вставить только данные и не создавать операторы, поэтому мне пришлось изменить два обведенных свойства
источник
Хранимая процедура Джейн Даллауэй: http://docs.google.com/leaf?id=0B_AkC4ZdTI9tNWVmZWU3NzAtMWY1My00NjgwLWI3ZjQtMTY1NDMxYzBhYzgx&hl=en_GB . Документация представляет собой серию сообщений в блоге: https://www.google.com/search?q=spu_generateinsert&as_sitesearch=http%3A%2F%2Fjane.dallaway.com
источник
Если вам нужен программный доступ, вы можете использовать хранимую процедуру с открытым исходным кодом `GenerateInsert.
ВСТАВИТЬ оператор (ы) генератор
В качестве простого и быстрого примера для создания операторов INSERT для таблицы
AdventureWorks.Person.AddressType
выполните следующие операторы:Это сгенерирует следующий скрипт:
источник
Первая ссылка на sp_generate_inserts довольно крутая, вот действительно простая версия:
В моей системе я получаю такой результат:
источник
Мой вклад в решение этой проблемы - генератор сценариев Powershell INSERT, который позволяет создавать сценарии для нескольких таблиц без необходимости использовать громоздкий графический интерфейс SSMS. Отлично подходит для быстрого сохранения «начальных» данных в системе контроля версий.
По умолчанию сгенерированный скрипт INSERT будет «SeedData.sql» в той же папке, что и скрипт.
Вам понадобятся установленные сборки объектов управления SQL Server, которые должны быть там, если у вас установлена SSMS.
источник
Не используйте вставки, используйте BCP
источник
Возможно, вы можете попробовать мастер публикации SQL Server http://www.microsoft.com/downloads/details.aspx?FamilyId=56E5B1C5-BF17-42E0-A410-371A838E570A&displaylang=en
Он имеет мастер, который поможет вам сценарий вставки операторов.
источник
GenerateData - замечательный инструмент для этого. Это также очень легко сделать настройки, потому что исходный код доступен для вас. Несколько приятных особенностей:
источник
Я использовал этот скрипт, который я поместил в своем блоге ( Как сгенерировать процедуры вставки операторов на сервере SQL ).
Пока что это работает для меня, хотя они могут быть ошибками, которые я еще не обнаружил.
источник
Я использую sqlite, чтобы сделать это. Я нахожу это очень, очень полезным для создания тестовых / тестовых баз данных.
sqlite3 foo.sqlite .dump > foo_as_a_bunch_of_inserts.sql
источник
У вас еще есть данные в производственной базе данных? Если это так, вы можете настроить период обновления данных через DTS. Мы проводим наши еженедельные выходные, и очень приятно иметь чистые реальные данные каждую неделю для нашего тестирования.
Если у вас еще нет производства, то вы должны создать базу данных, которая будет нужна вам (свежая). Затем продублируйте эту базу данных и используйте эту вновь созданную базу данных в качестве тестовой среды. Если вам нужна чистая версия, просто дублируйте свою чистую версию еще раз, и Боб станет вашим дядей .
источник
Если вы предпочитаете использовать Google Sheets, используйте SeekWell для отправки таблицы на лист, а затем вставьте строки в расписание по мере их добавления в лист.
Смотрите здесь для пошагового процесса, или посмотрите демонстрацию видео функции здесь.
источник
Выше приведено много хороших сценариев для генерации операторов вставки, но я попытался сделать один из своих собственных, чтобы сделать его максимально удобным для пользователя, а также иметь возможность выполнять операторы UPDATE. + упаковать результат для файлов .sql, которые можно сохранить по дате.
Он принимает в качестве входных данных ваш обычный оператор SELECT с предложением WHERE, затем выводит список операторов вставки и операторов обновления. Вместе они образуют нечто вроде IF NOT EXISTS () INSERT ELSE UPDATE Это также удобно, когда есть не обновляемые столбцы, которые необходимо исключить из окончательного оператора INSERT / UPDATE.
Еще одна вещь, которую может сделать приведенный ниже скрипт: он может даже обрабатывать INNER JOINs с другими таблицами в качестве оператора ввода для хранимого процесса. Он может быть полезен как инструмент управления релизами бедного человека, который находится у вас под рукой, когда вы весь день печатаете операторы SQL SELECT.
оригинальный пост: создание оператора UPDATE в SQL Server для конкретной таблицы
источник
почему бы просто не сделать резервную копию данных перед началом работы с ними, а затем восстановить, когда вы хотите, чтобы они были обновлены?
если вам нужно сгенерировать вставки, попробуйте: http://vyaskn.tripod.com/code.htm#inserts
источник
Не уверен, правильно ли я понимаю ваш вопрос.
Если у вас есть данные в MS-Access, которые вы хотите перенести на SQL Server - вы можете использовать DTS.
И, я полагаю, вы могли бы использовать профилировщик SQL для просмотра всех операторов INSERT.
источник
Я также много исследовал это, но не смог найти для этого конкретного решения. В настоящее время я придерживаюсь подхода, который заключается в том, чтобы скопировать содержимое в excel из студии управления SQL Server, а затем импортировать данные в Oracle-TOAD и затем сгенерировать операторы вставки.
источник
Вы можете сгенерировать оператор INSERT или MERGE с помощью этого простого и бесплатного приложения, которое я написал несколько лет назад:
Data Script Writer (Настольное приложение для Windows)
Кроме того, я недавно написал в блоге об этих инструментах и подходе к использованию SSDT для базы данных развертывания с данными. Узнайте больше:
Сценарий и развертывание данных для базы данных из проекта SSDT
источник
Я сделал простую в использовании утилиту, надеюсь, вам понравится.
Если сформированные заявления вставляемых усекается, проверьте ограничения длины текста результатов на Options Management Studio:
Tools > Options
,Query Results > SQL Server > Results to Grid
«Non XML данные» значение в разделе «Максимальное число символов Источник».источник