Invoke-Sqlcmd

SQL Server SQLCMD 유틸리티에서 지원하는 문이 포함된 스크립트를 실행합니다.

Syntax

Invoke-Sqlcmd
      [-ServerInstance <PSObject>]
      [-Database <String>]
      [-EncryptConnection]
      [-Username <String>]
      [-Password <String>]
      [[-Query] <String>]
      [-QueryTimeout <Int32>]
      [-ConnectionTimeout <Int32>]
      [-ErrorLevel <Int32>]
      [-SeverityLevel <Int32>]
      [-MaxCharLength <Int32>]
      [-MaxBinaryLength <Int32>]
      [-AbortOnError]
      [-DedicatedAdministratorConnection]
      [-DisableVariables]
      [-DisableCommands]
      [-HostName <String>]
      [-NewPassword <String>]
      [-Variable <String[]>]
      [-InputFile <String>]
      [-OutputSqlErrors <Boolean>]
      [-IncludeSqlUserErrors]
      [-SuppressProviderContextWarning]
      [-IgnoreProviderContext]
      [<CommonParameters>]

Description

Invoke-Sqlcmd cmdlet은 SQL Server SQLCMD 유틸리티에서 지원하는 언어 및 명령을 포함하는 스크립트를 실행합니다. 지원되는 명령은 Transact-SQL 문과 데이터베이스 엔진에서 지원하는 XQuery 구문의 하위 집합입니다. 또한 이 cmdlet은 GO 및 QUIT과 같은 SQLCMD에서 기본적으로 지원되는 많은 명령을 허용합니다. 이 cmdlet은 SQLCMDUSER와 같은 SQLCMD 스크립팅 변수도 허용합니다. 기본적으로 이 cmdlet은 SQLCMD 스크립팅 변수를 설정하지 않습니다.

이 cmdlet은 주로 대화형 스크립트 편집과 관련된 명령 사용을 지원하지 않습니다. 지원되지 않는 명령으로는 :!!, :connect, :error, :out, :ed, :list, :listvar, :reset, :perftrace 및 :serverlist가 있습니다.

이 cmdlet을 실행하면 스크립트가 반환하는 첫 번째 결과 집합이 형식이 지정된 테이블로 표시됩니다. 후속 결과 집합에 첫 번째 목록과 다른 열 목록이 포함되어 있으면 해당 결과 집합이 표시되지 않습니다. 첫 번째 집합 이후의 후속 결과 집합에 동일한 열 목록이 있는 경우 해당 행은 첫 번째 결과 집합에서 반환된 행을 포함하는 형식이 지정된 테이블에 추가됩니다.

Verbose 매개 변수를 지정하여 SQL PRINT 문의 결과와 같은 SQL Server 메시지 출력을 표시할 수 있습니다.

예제

예제 1: 명명된 instance 연결하고 스크립트 실행

PS C:\> Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance "MyComputer\MainInstance"
 TimeOfQuery
 -----------
 5/13/2010 8:49:43 PM

이 명령은 컴퓨터에서 SQL Database 엔진의 명명된 instance 연결하고 기본 Transact-SQL 스크립트를 실행합니다.

예제 2: 스크립트 파일에서 명령을 호출하고 출력을 텍스트 파일에 저장

PS C:\> Invoke-Sqlcmd -InputFile "C:\ScriptFolder\TestSqlCmd.sql" | Out-File -FilePath "C:\ScriptFolder\TestSqlCmd.rpt"
Output sent to TestSqlCmd.rpt.

이 명령은 Transact-SQL 문 및 SQLCMD 명령이 포함된 파일을 읽고, 파일을 실행하고, 출력을 다른 파일에 씁니다. 출력 파일에는 독점 정보가 포함될 수 있으므로 적절한 NTFS 권한으로 출력 파일을 보호해야 합니다.

예제 3: 스크립트 호출 및 문자열의 변수 값 전달

PS C:\> $StringArray = "MYVAR1='String1'", "MYVAR2='String2'"
PS C:\> Invoke-Sqlcmd -Query "SELECT `$(MYVAR1) AS Var1, `$(MYVAR2) AS Var2;" -Variable $StringArray
Var1     Var2
----     ----
String1  String2

이 명령은 변수 매개 변수 에 대한 입력으로 문자열 배열을 사용합니다. 배열은 여러 SQLCMD 변수를 정의합니다. SQLCMD 변수를 식별하는 SELECT 문의 $ 기호는 백틱(') 문자를 사용하여 이스케이프됩니다.

예제 4: 스크립트 호출 및 SQL 데이터베이스 엔진에서 변수 전달

PS C:\>Set-Location "SQLSERVER:\SQL\MyComputer\MainInstance"
PS C:\>Invoke-Sqlcmd -Query "SELECT SERVERPROPERTY('MachineName') AS ComputerName;" -ServerInstance (Get-Item .)
 ComputerName
 ------------
 MyComputer

이 명령은 Set-Location을 사용하여 SQL Database 엔진의 instance 대한 SQL Server Windows PowerShell 공급자 경로로 이동합니다. 그런 다음 Get-Item을 호출하여 Invoke-SqlcmdServerInstance 매개 변수로 사용할 SQL Management 개체 서버 개체를 검색합니다.

예제 5: 쿼리 실행 및 자세한 정보 표시 출력

PS C:\> Invoke-Sqlcmd -Query "PRINT N'abc'" -Verbose
VERBOSE: abc

이 명령은 Windows PowerShell Verbose 매개 변수를 사용하여 SQL PRINT 명령의 메시지 출력을 반환합니다.

예제 6: 위치 문자열을 입력으로 사용하여 명령 호출

PS C:\> Invoke-Sqlcmd "SELECT DB_NAME() AS DatabaseName;"
 WARNING: Using provider context. Server = MyComputer, Database = AdventureWorks2014. 

 DatabaseName
 ------------
 AdventureWorks2014

이 명령은 위치 문자열을 사용하여 쿼리 매개 변수에 입력을 제공합니다. 또한 Invoke-Sqlcmd 가 현재 경로를 사용하여 데이터베이스 컨텍스트를 AdventureWorks2014로 설정하는 방법을 보여 줍니다.

매개 변수

-AbortOnError

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionTimeout

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Database

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DedicatedAdministratorConnection

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableCommands

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisableVariables

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EncryptConnection

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ErrorLevel

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostName

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IgnoreProviderContext

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IncludeSqlUserErrors

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputFile

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxBinaryLength

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxCharLength

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NewPassword

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OutputSqlErrors

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Password

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-QueryTimeout

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SeverityLevel

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SuppressProviderContextWarning

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Username

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Variable

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

PSObject

출력

서식이 지정된 테이블