Zadanie jest proste: mamy skrypt z poleceniami SQL, który chcemy wywołać przez sqlcmd
. Ale – w skrypcie wykorzystujemy zmienną, która na dodatek zawiera ścieżkę do katalogu. Jako przykład niech posłuży taki fragment zapisany w pliku SELECT.sql
:
SELECT Imie = 'Bartek', Zmienna = '$(ScriptPath)'
Wywołanie z poziomu cmd
nie stwarza problemów:
C:\> cd tmp C:\tmp> sqlcmd -r1 -v ScriptPath="C:\tmp" -i SELECT.sql -S Serwer-f 1250 Bartek Zmienna ------ ------- Bartek C:\tmp
Poszczególne przełączniki oznaczają:
-r1
– chcę zobaczyć błędy na ekranie-v
– przekazuję zmienną o nazwie ScriptPath z wartością zawierającą jakąś ścieżkę-i
– nazwa skryptu wejściowego-S
– mój serwer-f
– strona kodowa
I super, a jeśli potrzebujemy uruchomić w PowerShell?
PS C:\tmp> sqlcmd -r1 -v ScriptPath="C:\tmp" -i SELECT.sql -S Serwer -f 1250 Sqlcmd: ':\tmp': Invalid argument. Enter '-?' for help.PS C:\tmp>
Czemu tak?
Czytaj dalej