SSMS
 sql >> Base de données >  >> Database Tools >> SSMS

Comment envoyer plusieurs commandes à Sql PowerShell à partir de la ligne de commande Windows ?

Si vous avez chaque nouvel élément répertorié sur une ligne distincte dans un fichier PS1, par exemple en supposant que j'ai un fichier nommé register.ps1 avec les lignes suivantes :

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" 

Vous pouvez appeler sqlps comme ceci :

sqlps -NoExit -Command "&{C:\bin\register.ps1}"

Une meilleure solution serait d'ajouter des paramètres au registre.ps1

param($ServerInstance)

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

Puis créez ensuite un fichier avec la liste des Instances SQL, par exemple server.txt :

server1
server2

Appelez register.ps1 pour chaque ligne :

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