Справка SQL Select Query to PowerShell - PullRequest
0 голосов
/ 24 ноября 2010

Так .... У меня есть запрос SQL (MSSQL 2005), который собирает некоторые данные, которые мне нужно представить или отправить в другое место. В этом конкретном случае мне нужно создать CSV из запроса, что в PowerShell довольно просто.

ОДНАКО моя проблема в этом. Как мне выполнить мой запрос (предпочтительно к удаленной системе / серверу SQL)? Как передать в запрос обязательные параметры? (см. PARAM1, PARAM2, PARAM3)?

Бонусные баллы ... PARAM1 должен быть датой, формат гггг-мм-дд работает. PARAM2 должен быть одним из трех вариантов: OPT1, OPT2, OPT3 PARAM3 должен быть строкой из X символов.

PS Да, использование osql.exe пришло мне в голову, но когда я создавал сценарии в пакетном режиме, до меня дошло, что ... ну, я больше не хочу использовать пакетный режим. ; -)

Select COL1, COL2 FROM [database].[dbo].[function](PARAM1,PARAM2,PARAM3);

1 Ответ

2 голосов
/ 24 ноября 2010

Это довольно просто с командлетами SQL в 2.0:

$Query = "Select COL1, COL2 FROM [database].[dbo].[function](PARAM1,PARAM2,PARAM3)"
$Results = Invoke-SQLCmd -ServerInstance <server> -Database <DB> -Query $Query

Тогда вы можете использовать имена столбцов в вашем $Results, то есть:

$Col1 = $Results.COL1

Вы также можете проанализировать $Query для других параметров, а именно:

$Query = "Select COL1, COL2 FROM [database].[dbo].[function](" + $Param1 + "," + $Param2 + "," + $Param3 + ")"

РЕДАКТИРОВАНИЕ :

Чтобы включить оснастки, используйте:

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