Не удаляйте и не создавайте базу данных при сценарии удаления / создания объектов базы данных и данных с помощью ms sql -scripter - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь создать сценарий для объектов базы данных и данных своей базы данных, чтобы затем перенести их на сервер, на котором у меня нет прав на резервное копирование / восстановление. Вместо этого я использую метод Generate Scripts и использую ms sql -scripter для генерации скриптов.

У меня есть файл .bat со следующим кодом скрипта для генерации моего SQL файл сценария.

установленный временной интервал =% дата: ~ 4,2% % дата: ~ 7,2% % дата: ~ 10,4% -% времени : ~ 0,2% % время: ~ 3,2% % время: ~ 6,2%

мс sql -скриптер --сервер 10.100.8.8 -d Dev_db - f. \% timevar%. sql --schema-and-data --script-drop-create --target-server-version 2016 --ttarget-server-edition Стандартный --check-for-Существование --include -dependencies --constraint-names --collation -U ScriptingUser -P 1234 --exclude-use-database

Проблема в том, что это также сценарии DROP DATABASE и CREATE DATABASE, которые я надеваю не хочу Я хотел бы только DROP и CREATE объекты базы данных, а затем заполнить таблицы скриптовыми данными.

Кто-нибудь сталкивался с этой проблемой, и вы нашли решение?

1 Ответ

1 голос
/ 29 января 2020

После долгого поиска вариантов мне удалось найти правильный параметр и обходной путь для решения моей проблемы.

Точный код, который я запустил:

установить время =% даты: ~ 4,2% % даты: ~ 7,2% % даты: ~ 10,4% -% времени: ~ 0,2% % времени: ~ 3,2% % время: ~ 6,2%

мс sql -scripter --server 10.100.8.8 -d Dev_db -f. \% Timevar%. sql --schema -and-data --script-drop-create --ttarget-server-version 2016 --ttarget-server-edition Standard - проверка на существование --constraint-names --collation -U ScriptingUser -P 1234 - exclude-use-database --include-objects "dbo." --display-progress

При изменении ключа я добавил параметр - include-objects с поворотом. Я изменил сценарии, добавив добавив фрагмент кода:

- include-objects "dbo."

Это говорит ms sql -scripter, чтобы только выписывать сценарий объекты, которые содержат ключевое слово " dbo. " (подстрока) в полном имени.

Также я удалить этот параметр из моей первоначальной команды:

- include-зависимости

, так как я записываю все в своей базе данных под схему dbo.

В этом сценарии:

  • все объекты в моей базе данных
  • включает проверку IF EXISTS
  • выдает запрос DROP для удаления существующего
  • выдает запрос CREATE для создания нового
  • выдает несколько операторов INSERT, чтобы также заполнить базу данных данными
...