Udostępnij za pośrednictwem


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