2012-04-16 4 views
0

Я хотел бы создать сценарий powershell, который я могу запустить для резервного копирования объектов в файл перед их обновлением. Моя цель - резервировать объекты перед их заменой, если что-то сломается. Я хотел бы передать параметры для запуска, как в следующем:SQL Powershell для создания резервной копии объектов

backupobjects.ps1 -servername -databasename -schemaname -objectname -outputdirectory

Так что, если я называю этот Powershell скрипт и передать в параметрах сценария будет подключаться к базу данных и найти объект и сохранить сценарий CREATE и сохранить объект в переданном каталоге output и поместить BEFORE_objectname.sql в качестве имени файла.

Я только начинаю в powershell, так что принимаю параметры, которые еще не изучил.

Любое руководство или предложения были бы полезными.

+0

Итак ... каков ваш вопрос? Вы пытались создать сценарий? Ваш вопрос о передаче параметров в powershell? Подключение к базе данных? Вы должны быть конкретными. –

ответ

0

Вместо того, чтобы писать для вас, вот несколько подталкивания:

1) пары, как вы передаете параметры в PowerShell. Я хотел бы сделать это следующим образом:

param (
    [string] $server = (Read-Host "Enter a server name"), 
    [string] $db = (Read-Host "Enter a database name") 
) 

вы тогда ссылка $ сервер и $ DB позже в сценарии, как если бы вы явно инициализировать их.

2) Большинство (если не все) объектов на SQL-сервере имеют к ним прикрепленный метод Script(). Например, посмотрите на Table class.

3) Вы можете контролировать, как объекты создаются сценарием, используя класс ScriptingOptions. Когда вы вызываете метод Script() для объекта, передайте объект ScriptingOptions в качестве аргумента, и поведение скриптов будет определяться им.

+0

Это круто, я буду использовать ваши предложения и посмотреть, смогу ли я заставить свой скрипт работать. Есть ли простой способ взять параметры без остановки и попросить пользователя ввести данные. я предпочел бы сделать это так: scriptname.ps1 -servername -databasename -schema -objectname -outputpath Это выполнимо? –

+0

Вы можете сделать именно это с кодом, который я предоставил. Если вы передадите параметры, он не запрашивает. Если вы этого не сделаете, это произойдет. –

Смежные вопросы