Ich habe das folgende PowerShell-Skript zusammengestellt, das alle USPs auf einem Server scriptet.PowerShell SQL Scripting Alleinstellungsmerkmale und Benutzer
Gibt es eine Option, die Ausgabe in einzelne Dateien aufzuteilen (anstatt als eine ganze/große Datei zu speichern)?
Get-ChildItem -Path SQLSERVER:\SQL\myserver\Default\Databases\mydb\StoredProcedures\ | %{$_.script() | out-file -Filepath "myfilelocation.sql"}
Haben Sie versucht, Ihre Pipe in 'Out-File' innerhalb Ihres' Foreach-Object' (%) Skriptblocks zu platzieren? d. h. '% {$ _. Script() | Out-File ...} ' – Shaneis
@Shaneis Danke. Rückt näher. Ich habe die Out-Datei in die Pipe eingefügt, und ich kann sehen, dass alles einzeln ausgeführt wird (wenn die Datei wächst und dann immer wieder reduziert wird) - aber nicht sicher, wie man das Foreach-Objekt einführt, so dass für jedes eine separate Datei erzeugt wird . 'Get-ChildItem -Pfad SQLSERVER: \ SQL \ Mein Server \ Default \ Databases \ mydb \ StoredProcedures \ | % {$ _. script() | out-file -Filepath "mylocation _ $ (get-date -f yyyyMMdd) .sql"} ' –
Das liegt daran, dass Sie jedes Mal Ihre Datei überschreiben. Diese Skripts sollten schnell fertig sein, damit sie am selben Tag (hoffentlich) fertig sind. Versuchen Sie, die Uhrzeit oder den Namen der zu scriptierenden Prozedur hinzuzufügen, um den Dateinamen eindeutig zu machen, und sehen Sie, ob Ihnen das hilft. Oder benutze '-Append' nach dem' .sql''Bit – Shaneis