다음을 통해 공유


SQL Server PowerShell 경로 작업

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

  1. 시작하기 전에

  2. 경로 노드에서 작업하려면: 메서드 및 속성 나열, 메서드 및 속성 사용

시작하기 전에

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

  • 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: 경로에서 AdventureWorks2012 노드로 이동하고 개체 속성을 나열합니다.

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

SMO 메서드 및 속성 사용

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

예제: 메서드 및 속성 사용

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

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

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

Remove-Item C:\PowerShell\CreateViews.sql  
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2012\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  

참고 항목

SQL Server PowerShell 공급자
SQL Server PowerShell 경로 탐색
URN을 SQL Server 공급자 경로로 변환
SQL Server PowerShell