SQL Server PowerShell 경로 작업

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System(PDW)

데이터베이스 엔진 공급자 경로의 노드로 이동한 후에는 노드와 연결된 데이터베이스 엔진 관리 개체의 메서드 및 속성을 사용하여 작업을 수행하거나 정보를 검색할 수 있습니다.

참고 항목

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

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

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

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

PowerShell 갤러리에서 SqlServer 모듈을 설치합니다.

자세한 내용은 SQL Server PowerShell을 참조하세요.

데이터베이스 엔진 공급자 경로의 노드로 이동한 후 다음 두 가지 유형의 작업을 수행할 수 있습니다.

  • Rename-Item과 같은 노드에서 작동하는 Windows PowerShell cmdlet을 실행할 수 있습니다.

  • SMO와 같은 관련 SQL Server 관리 개체 모델에서 메서드를 호출할 수 있습니다. 예를 들어 경로에서 데이터베이스 노드로 이동하는 경우 Database 클래스의 메서드와 속성을 사용할 수 있습니다.

SQL Server 공급자는 데이터베이스 엔진 인스턴스의 개체를 관리하는 데 사용됩니다. 데이터베이스의 데이터 작업에는 사용되지 않습니다. 테이블 또는 뷰로 이동한 경우에는 공급자를 사용하여 데이터에 대한 선택, 삽입, 업데이트 또는 삭제 작업을 수행할 수 없습니다. Windows PowerShell 환경에서 테이블 및 뷰의 데이터를 쿼리하거나 변경하려면 Invoke-Sqlcmd cmdlet을 사용하세요. 자세한 내용은 Invoke-Sqlcmd cmdlet을 참조하세요.

메서드 및 속성 나열

메서드 및 속성 나열

특정 개체 또는 개체 클래스에 사용할 수 있는 메서드와 속성을 보려면 Get-Member cmdlet을 사용합니다.

예: 메서드 및 속성 나열

다음은 Windows PowerShell 변수를 SMO Database 클래스로 설정하고 메서드 및 속성을 나열하는 예제입니다.

$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database  
$MyDBVar | Get-Member -Type Methods  
$MyDBVar | Get-Member -Type Properties  

Get-Member를 사용하여 Windows PowerShell 경로의 끝 노드와 연결된 메서드 및 속성을 나열할 수도 있습니다.

이 예에서는 SQLSERVER: 경로의 Databases 노드로 이동하고 컬렉션 속성을 나열합니다.

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases  
Get-Item . | Get-Member -Type Properties  

이 예에서는 SQLSERVER: 경로의 AdventureWorks2022 노드로 이동하고 개체 속성을 나열합니다.

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022  
Get-Item . | Get-Member -Type Properties  

메서드 및 속성 사용

SMO 메서드 및 속성 사용

데이터베이스 엔진 공급자 경로에서 개체에 대한 작업을 수행하려면 SMO 메서드 및 속성을 사용할 수 있습니다.

예제: 메서드 및 속성 사용

이 예에서는 SMO Schema 속성을 사용하여 AdventureWorks2022의 Sales 스키마에서 테이블 목록을 가져옵니다.

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022\Tables  
Get-ChildItem | where {$_.Schema -eq "Sales"}  

이 예제에서는 SMO 스크립트 메서드를 사용하여 다음과 같이 AdventureWorks2022의 뷰를 다시 만들어야 하는 CREATE VIEW 문이 포함된 스크립트를 생성합니다.

Remove-Item C:\PowerShell\CreateViews.sql  
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022\Views  
foreach ($Item in Get-ChildItem) { $Item.Script() | Out-File -Filepath C:\PowerShell\CreateViews.sql -append }  

이 예제에서는 SMO Create 메서드를 사용하여 데이터베이스를 만든 다음 State 속성을 사용하여 데이터베이스가 있는지 여부를 표시합니다.

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases  
$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database  
$MyDBVar.Parent = (Get-Item ..)  
$MyDBVar.Name = "NewDB"  
$MyDBVar.Create()  
$MyDBVar.State  

참고 항목