SQL Server PowerShell

적용 대상: 예SQL Server(지원되는 모든 버전) 예Azure SQL Database 예Azure SQL Managed Instance 예Azure Synapse Analytics 예병렬 데이터 웨어하우스

SQL Server PowerShell 설치

SQL Server PowerShell 모듈에는 SqlServerSQLPS 의 두 가지가 있습니다.

SqlServer 모듈이 사용할 현재 PowerShell 모듈입니다.

SQLPS 모듈은 이전 버전과의 호환성을 위해 SQL Server 설치에 포함되어 있지만 더 이상 업데이트되지 않습니다.

SqlServer 모듈은 SQLPS 에 있는 cmdlet의 업데이트된 버전을 포함하며, 최신 SQL 기능을 지원하는 새로운 cmdlet도 포함되어 있습니다.

이전 버전의 SqlServer 모듈은 SSMS(SQL Server Management Studio)에 포함되어 ‘있었습니다’(SSMS 16.x 버전만 해당).

SSMS 17.0 이상에서 PowerShell을 사용하려면 PowerShell 갤러리에서 SqlServer 모듈을 설치합니다.

Azure Data Studio와 함께 PowerShell을 사용할 수도 있습니다.

모듈이 SQLPS에서 SqlServer로 변경된 이유는 무엇인가요?

SQL PowerShell 업데이트를 제공하기 위해 SQL PowerShell 모듈의 ID와 SQLPS.exe 라는 래퍼를 변경해야 했습니다. 이러한 변경으로 인해 이제 SqlServer 모듈과 SQLPS 모듈이라는 두 가지 SQL PowerShell 모듈이 있습니다.

SQLPS 모듈을 가져오는 경우 PowerShell 스크립트를 업데이트하세요.

Import-Module -Name SQLPS를 실행하는 PowerShell 스크립트가 있다면 새로운 공급자 기능과 새로운 cmdlet을 활용하는 것이 좋으며 이를 Import-Module -Name SqlServer로 변경해야 합니다. 새 모듈은 %ProgramFiles%\WindowsPowerShell\Modules\SqlServer 폴더에 설치됩니다. 따라서 $env:PSModulePath 변수를 업데이트할 필요가 없습니다. SqlServer 라는 타사 또는 커뮤니티 버전의 모듈을 사용하는 스크립트가 있다면 Prefix 매개 변수를 사용하여 이름 충돌을 방지하세요.

SQLPS 모듈이 동일한 컴퓨터에 설치되어 있는 경우 Side-by-Side 문제를 방지하려면 Import-Module SQLServer 를 사용하여 스크립트를 시작하는 것이 좋습니다.

이 섹션은 SQL 에이전트가 아닌 PowerShell에서 실행되는 스크립트에 적용됩니다. 새 모듈은 #NOSQLPS를 사용하는 SQL 에이전트 작업 단계에서 사용할 수 있습니다.

SQL Server PowerShell 구성 요소

SqlServer 모듈은 다음과 함께 제공됩니다.

  • 파일 시스템 경로와 유사한 간단한 탐색 메커니즘을 제공하는 PowerShell 공급자. 드라이브가 SQL Server 관리 개체 모델과 연결되고 노드가 개체 모델 클래스를 기반으로 하는 파일 시스템 경로와 비슷한 경로를 작성할 수 있습니다. 그런 다음 명령 프롬프트 창에서 폴더를 탐색하는 것과 비슷한 방법으로 cddir 과 같은 친숙한 명령을 사용하여 경로를 탐색할 수 있습니다. ren 또는 del 과 같은 다른 명령을 사용하여 경로의 노드에 동작을 수행할 수 있습니다.

  • Transact-SQL 또는 XQuery 문이 포함된 sqlcmd 스크립트 실행과 같은 동작을 지원하는 cmdlet 집합.

  • AS 공급자 및 cmdlet(이전에는 별도로 설치됨).

SQL Server 버전

SQL PowerShell cmdlet을 사용하여 Azure SQL Database, Azure Synapse Analytics, 지원되는 모든 SQL Server 제품의 인스턴스를 관리할 수 있습니다.

PowerShell 경로에서 지원되지 않는 문자가 포함된 SQL Server 식별자

Encode-SqlnameDecode-Sqlname cmdlet을 사용하면 PowerShell 경로에서 지원되지 않는 문자가 포함된 SQL Server 식별자를 지정할 수 있습니다. 자세한 내용은 SQL Server Identifiers in PowerShell을(를) 참조하세요.

Convert-UrnToPath cmdlet을 사용하면 데이터베이스 엔진 개체의 URN을 SQL Server PowerShell 공급자의 경로로 변환할 수 있습니다. 자세한 내용은 Convert URNs to SQL Server Provider Paths을(를) 참조하세요.

쿼리 식 및 Unique Resource Names

쿼리 식은 개체 모델 계층 구조에 있는 하나 이상의 개체를 열거하는 조건 집합을 지정하기 위해 XPath와 유사한 구문을 사용하는 문자열입니다. URN(Unique Resource Name)은 단일 개체를 고유하게 식별하는 특정 유형의 쿼리 식 문자열입니다. 자세한 내용은 Query Expressions and Uniform Resource Names을(를) 참조하세요.

SQL Server 에이전트

SQL Server 에이전트에서 사용하는 모듈에 대한 변경 사항은 없습니다. 따라서 PowerShell 유형 작업 단계를 포함하는 SQL Server 에이전트 작업은 SQLPS 모듈을 사용합니다. 자세한 내용은 SQL Server 에이전트에서 PowerShell을 실행하는 방법을 참조하세요. 그러나 SQL Server 2019부터 SQLPS를 사용하지 않도록 설정할 수 있습니다. 이렇게 하려면 PowerShell 유형 작업 단계의 첫 번째 줄에 #NOSQLPS를 추가할 수 있습니다. 그러면 SQL 에이전트가 SQLPS 모듈을 자동으로 로드하지 않습니다. 이렇게 하면 SQL 에이전트 작업이 컴퓨터에 설치된 PowerShell 버전을 실행하므로 원하는 다른 PowerShell 모듈을 사용할 수 있습니다.

SQL 에이전트 작업 단계에서 SqlServer 모듈을 사용하려는 경우 스크립트의 처음 두 줄에 다음 코드를 배치할 수 있습니다.

#NOSQLPS
Import-Module -Name SqlServer

Cmdlet 참조

다음 단계