Вопрос

Позвольте сказать, что у меня нет возможности создавать сохраненную процедуру, но мне необходимо регулярно запускать один и тот же запрос.Смогу ли я поставить свой запрос в документ .txt и сможет запустить его от PowerShell, позвонив ему?Какой синтаксис я использовал для запуска myquery.txt?Поместите другой путь, каков способ заканчиваться неспособным использовать сохраненную процедуру на запросе, который должен быть сделан в один?

Это было полезно?

Решение

Это зависит от ваших версий PowerShell, но у вас есть несколько вариантов.Я склонен использовать несколько из них, основываясь на сценарии, но в вашем случае, почему бы не просто вызвать генеракодицетагкод из вашего скрипта PowerShell?Он имеет наибольшую совместимость, это менее багги и более совместимо, чем SQLCMD.EXE, а за пределами Invoke-SQLCMD я не видел MS Explace GeneracodicTagcode.Это будет выглядеть что-то подобное:

#Check SQLCMD /? for help and syntax
$Query = "SELECT @@SERVERNAME"
SQLCMD -S "ServerName" -E #integrated security# -q $Query
.

В противном случае вам придется установить пакет функции SQL Server из V12 и выше, затем используйте DSC, который имеет некоторые проблемы совместимости и не обеспечивают слишком много преимуществ, кроме как в некоторых случаях, которые я нашел.Вы также получаете Full SMO функциональные возможности с пакетом функций, но это сверхугольника и слишком много конфигурации для простого запроса.

Другие советы

Я замечаю, что вы пометили вопрос netezza, но я не уверен, что SQLCMD (предлагается в принятом ответе) работает с Netezza или только с SQL Server.Альтернатива является использование Возбуждение Workbench для Netezza , который предоставляет Неоплаченная командная линия опция :

"C:\Program Files (x86)\Aginity\Aginity Workbench for PureData System for Analytics(x64)\Aginity.NetezzaWorkbench.exe" --unattended --stdout MyOutput.txt --stderr MyErrors.txt --description "New Execute SQL Command" --action exec --connstr "Driver={NetezzaSQL};server=mynzbox;UserName=myuser;Password=mypwd;Database=system;LoginTimeout=120" --dbtype NetezzaODBC --sqlfile MyQuery.sql
.

Эквивалент SQLCMD на Netezza является NZSQL, который может быть установлен на обоих Windows и Unix. Мы запускаем автоматические сценарии PowerShell, которые выполняют операторы SQL через NZSQL, и это работает нормально :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top