Using the Invoke-Sqlcmd cmdlet
Wywołaj Sqlcmd is a SQL Server apletu polecenia uruchamiający skrypty, które zawierają instrukcje od (językiTransact-SQL i XQuery) i poleceń, które są obsługiwane przez SQLCMD narzędzie.
Za pomocą wywołania Sqlcmd
The Invoke-Sqlcmd cmdlet lets you run your sqlcmd script files in a Windows PowerShell environment.Większość co można zrobić z SQLCMD można również wykonać używającWywołaj Sqlcmd.
Jest to przykład telefonicznej Wywołaj Sqlcmd , aby wykonać kwerendę prostą, podobne do określania SQLCMD with the -Q and -S options:
Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance "MyComputer\MyInstance"
Jest to przykład telefonicznej Wywołaj Sqlcmd, określając plik wejściowy i rurociągu dane wyjściowe do pliku jest podobne do określania SQLCMD with the -i and -o options:
Invoke-Sqlcmd -InputFile "C:\MyFolder\TestSQLCmd.sql" | Out-File -filePath "C:\MyFolder\TestSQLCmd.rpt"
Jest to przykład użycia tablicy PowerShell systemu Windows do przekazywania wielu SQLCMD wykonywanie wykonywanie skryptów zmiennych, które Wywołaj Sqlcmd.Identyfikowanie znaki "$" SQLCMD wykonywanie wykonywanie skryptów zmiennych w instrukcja SELECT mają zostać zmienione znaczenie za przy użyciu kopii systemu Windows PowerShell-osi "`" escape znaku:
$MyArray = "MyVar1 = 'String1'", "MyVar2 = 'String2'"
Invoke-Sqlcmd -Query "SELECT `$(MyVar1) AS Var1, `$(MyVar2) AS Var2;" -Variable $MyArray
Jest to przykład użycia SQL Server Dostawca, aby przejść do wystąpienie Database Engine, a następnie przy użyciu PowerShell systemu Windows Pobieranie zapasów apletu polecenia, aby pobrać obiekt obiekty SMO serwera dla wystąpienie i przekazaniem go do Wywołaj Sqlcmd:
Set-Location SQLSERVER:\SQL\MyComputer\MyInstance
Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance (Get-Item .)
Query parametr jest pozycyjne i nie musi mieć nazwę.Jeżeli pierwszy ciąg, który jest przekazywany do Wywołaj Sqlcmd: jest nienazwane, jest traktowana jako parametr - Query.
Invoke-Sqlcmd "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance "MyComputer\MyInstance"
Kontekst ścieżka w Sqlcmd wywołania
Jeśli nie zostanie użyty parametr bazy danych, kontekst bazy danych Wywołaj Sqlcmd jest ustawiana przez ścieżka, która jest aktywny, gdy wywoływana jest funkcja apletu polecenia.
Ścieżka |
Kontekst bazy danych |
---|---|
Rozpoczyna się od dysku innym niż SQLSERVER: |
Domyślna baza danych dla identyfikator logowania w wystąpienie domyślne na komputerze lokalnym. |
SQLSERVER:\SQL |
Domyślna baza danych dla identyfikator logowania w wystąpienie domyślne na komputerze lokalnym. |
SQLSERVER:\SQL\ComputerName |
Domyślna baza danych dla identyfikator logowania w wystąpienie domyślne na określonym komputerze. |
SQLSERVER:\SQL\ComputerName\InstanceName |
Domyślna baza danych dla identyfikator logowania w określonym wystąpienie na określonym komputerze. |
SQLSERVER:\SQL\ComputerName\InstanceName\Databases |
Domyślna baza danych dla identyfikator logowania w określonym wystąpienie na określonym komputerze. |
SQLSERVER:\SQL\ComputerName\InstanceName\Databases\DatabaseName |
Z określonej bazy danych w określonym wystąpienie na określonym komputerze.Dotyczy to również dłuższe ścieżka, takie jak ścieżka, która określa węzeł tabele i kolumny w bazie danych. |
Na przykład, załóżmy, że domyślna baza danych dla tego konta systemu Windows w domyślnym wystąpienie komputer lokalny jest głównym.Następnie zwróciłby wzorca następujących poleceń:
Set-Location SQLSERVER:\SQL
Invoke-Sqlcmd "SELECT DB_NAME() AS DatabaseName;"
Następujące polecenia zwróciłby AdventureWorks:
Set-Location SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks\Tables\Person.Contact
Invoke-Sqlcmd "SELECT DB_NAME() AS DatabaseName;"
Wywołaj Sqlcmd zapewnia ostrzeżenie, kiedy korzysta z kontekstu ścieżka bazy danych.Można użyć parametru - SuppressProviderContextWarning, aby wyłączyć komunikat ostrzegawczy.Można użyć parametru - IgnoreProviderContext, aby poinformować Wywołaj Sqlcmd do domyślna baza danych należy zawsze używać do logowania się.
Porównanie Sqlcmd Invoke i sqlcmd narzędzie
Wywołaj Sqlcmd może służyć do uruchamiania wielu skryptów, które mogą być uruchamiane przy użyciu SQLCMD narzędzie.Jednak Wywołaj Sqlcmd jest uruchamiana w środowisku PowerShell systemu Windows, który różni się od środowiska wiersz polecenia tego SQLCMD is run in.Zachowanie Wywołaj Sqlcmd została zmodyfikowana tak, aby działać w środowisku PowerShell systemu Windows.
Nie wszystkie SQLCMD polecenia są wykonywane w Wywołaj Sqlcmd.Następujące polecenia, które nie zostały zaimplementowane: :!!, : łączenie, : błąd, : Brak, : ed, : listy, : listvar, : resetowanie, : perftrace, a : serverlist.
Wywołaj Sqlcmd nie inicjuje SQLCMD środowiska lub wykonywanie wykonywanie skryptów w zmiennych, takich jak SQLCMDDBNAME lub SQLCMDWORKSTATION.
Wywołaj Sqlcmd Jeśli nie podasz PowerShell Windows nie wyświetla wiadomości, takie jak dane wyjściowe instrukcji PRINT-Verbose parametr wspólne.Na przykład:
Invoke-Sqlcmd -Query "PRINT N'abc';" -Verbose
Nie wszystkie SQLCMD parametry są wymagane w środowisku PowerShell systemu Windows.Na przykład PowerShell Windows formatuje wszystkie dane wyjściowe z cmdlets, więc SQLCMD Parametry określania opcji formatowania nie są implementowane w Wywołaj Sqlcmd.W poniższej tabela przedstawiono zależność między Wywołaj Sqlcmd Parametry a SQLCMD options:
Description |
Opcja SQLCMD |
Parametr Sqlcmd wywołania |
---|---|---|
Nazwa serwera i instancji. |
-S |
-ServerInstance |
Początkowe bazę danych do użycia. |
-d |
-Bazy danych |
Uruchamianie kwerendy i zakończenia. |
-Q |
-Kwerendy |
SQL Server identyfikator logowania uwierzytelnianie logowania. |
-U |
-Nazwa użytkownika |
SQL Server Uwierzytelnianie hasła. |
-P |
-Hasło |
Definicja zmiennej. |
-v |
— Zmienna |
Interwał limitu czasu kwerendy. |
-t |
-QueryTimeout |
Zatrzymywanie uruchomionych na błąd |
-b |
-AbortOnError |
Połączenie dedykowane administratora. |
-A |
-DedicatedAdministratorConnection |
Wyłącz poleceń interakcyjnych, skrypt uruchamiania i zmiennych środowiskowych. |
-X |
-DisableCommands |
Wyłączyć podstawianie zmiennych. |
-x |
-DisableVariables |
Poziom ważności minimalne do raportu. |
-V |
-SeverityLevel |
Błąd minimalny poziom do raportu. |
-m |
-ErrorLevel |
Interwał limitu czasu logowania. |
-l |
-ConnectionTimeout |
Nazwa hosta. |
-H |
-HbostName |
Zmiana hasła i wyjść. |
-Z |
-NoweHasło |
Plik wejściowy zawierający kwerendę |
-i |
-Plik_wejściowy |
Maksymalna długość znaku danych wyjściowych. |
-w |
-MaxCharLength |
Maksymalna długość binarnych danych wyjściowych. |
-w |
-MaxBinaryLength |
Połącz przy użyciu szyfrowanie SSL. |
Brak parametru |
-EncryptConnection |
Wyświetl błędy |
Brak parametru |
-OutputSqlErrors |
Wyjściowe komunikaty do obiektu stderr. |
-r |
Brak parametru |
Użyj ustawień regionalnych klient |
-R |
Brak parametru |
Uruchomić określonej kwerendy i będą nadal działać. |
-q |
Brak parametru |
Strona kodowa dla danych wyjściowych. |
-f |
Brak parametru |
Zmiana hasła i będą nadal działać |
-z |
Brak parametru |
Rozmiar pakiet |
-a |
Brak parametru |
Separator kolumna |
-s |
Brak parametru |
Formant danych wyjściowych nagłówków |
-h |
Brak parametru |
Określa znaki kontrolne |
-k |
Brak parametru |
Stała długość, szerokość ekranu |
-Y |
Brak parametru |
O zmiennej długości, szerokości ekranu |
-y |
Brak parametru |
Dane wejściowe echo |
-e |
Brak parametru |
Włącz identyfikatorów w cudzysłowach |
-I |
Brak parametru |
Usuwanie spacji końcowych |
-W |
Brak parametru |
Wystąpienia listy |
-L |
Brak parametru |
Format danych wyjściowych w formacie Unicode |
-u |
Brak parametru |
Drukowanie statystyk |
-p |
Brak parametru |
Polecenie zakończenia |
-c |
Brak parametru |
Łączenie się przy użyciu uwierzytelnianie systemu Windows |
-E |
Brak parametru |
See Also