SSMS
 sql >> Base de Dados >  >> Database Tools >> SSMS

Como você envia vários comandos para o Sql PowerShell a partir da linha de comando do Windows?


Se você tiver cada novo item individual listado em uma linha separada em um arquivo PS1, por exemplo, supondo que eu tenha um arquivo chamado register.ps1 com as seguintes linhas:
cd 'SQLSERVER:\sqlregistration\Database Engine Server Group\'; new-item $(Encode-Sqlname server1) -itemtype registration -Value "server=server1;integrated security=true" 
cd 'SQLSERVER:\sqlregistration\Database Engine Server Group\'; new-item $(Encode-Sqlname server2) -itemtype registration -Value "server=server1;integrated security=true" 

Você poderia chamar sqlps assim:
sqlps -NoExit -Command "&{C:\bin\register.ps1}"

Uma solução melhor seria adicionar parâmetros ao register.ps1
param($ServerInstance)

cd 'SQLSERVER:\sqlregistration\Database Engine Server Group\'
New-Item $(Encode-Sqlname $server) -itemtype registration -Value "server=$serverInstance;integrated security=true"

Em seguida, crie um arquivo com a lista de Instâncias SQL, por exemplo server.txt:
server1
server2

Chame register.ps1 para cada linha:
get-content C:\bin\server.txt | foreach {C:\bin\register.ps1 $_ }