Compartilhar via


Trabalhar com caminhos do SQL Server PowerShell

Depois de navegar para um nó em um caminho de provedor do Mecanismo de Banco de Dados , pode executar trabalho ou recuperar informações usando os métodos e as propriedades do objeto de gerenciamento do Mecanismo de Banco de Dados associado com o nó.

Observação

Há dois módulos do SQL Server PowerShell; SqlServer e SQLPS.

O módulo SqlServer é o módulo atual do PowerShell a ser usado.

O módulo SQLPS está incluído na instalação do SQL Server (para compatibilidade com versões anteriores), mas não está mais sendo atualizado.

O módulo do SqlServer contém versões atualizadas dos cmdlets no SQLPS e inclui novos cmdlets para dar suporte aos recursos mais recentes do SQL.

Instale o módulo SqlServer da Galeria do PowerShell.

Para obter mais informações, visite o SQL Server PowerShell.

Depois de navegar até um nó em um caminho do provedor do Mecanismo de Banco de Dados, você poderá executar dois tipos de ações:

  • Você pode executar os cmdlets do Windows PowerShell que funcionam em nós, como Rename-Item.

  • Você pode chamar os métodos do modelo de objeto de gerenciamento associado do SQL Server , como SMO. Por exemplo, se você navegar até o nó Banco de Dados em um caminho, poderá usar os métodos e as propriedades da classe <xref:Microsoft.SqlServer.Management.Smo.Database> .

O provedor do SQL Server é usado para gerenciar os objetos em uma instância do Mecanismo de Banco de Dados. Ele não é usado para trabalhar com dados em bancos de dados. Se você navegou até uma tabela ou exibição, não é possível usar o provedor para selecionar, inserir, atualizar ou excluir dados. Use o cmdlet Invoke-Sqlcmd para consultar ou alterar dados em tabelas e exibições do ambiente do Windows PowerShell. Para obter mais informações, consulte Invoke-Sqlcmd.

Listar métodos e propriedades

Listando métodos e propriedades

Para exibir os métodos e as propriedades disponíveis para objetos ou classes de objetos específicos, use o cmdlet Get-Member .

Exemplo: listando métodos e propriedades

Este exemplo define uma variável do Windows PowerShell para a classe SMO <xref:Microsoft.SqlServer.Management.Smo.Database> e lista os métodos e as propriedades:

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

Você também pode usar Get-Member para listar os métodos e as propriedades associadas ao nó final de um caminho do Windows PowerShell.

Este exemplo navega até o nó Bancos de Dados em um caminho SQLSERVER: e lista as propriedades da coleção:

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

Este exemplo navega até o nó AdventureWorks2022 em um caminho SQLSERVER: e lista as propriedades dos objetos:

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

Usar métodos e propriedades

Usando métodos e propriedades do SMO

Para executar trabalhos em objetos de um caminho de provedor do Mecanismo de Banco de Dados , você pode usar métodos e propriedades do SMO.

Exemplo: usando métodos e propriedades

Este exemplo usa a propriedade SMO Schema para obter a lista de tabelas do esquema Sales em AdventureWorks2022:

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

Este exemplo usa o método do SMO Script para gerar um script que contém as instruções CREATE VIEW necessárias para recriar as exibições em AdventureWorks2022:

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 }

Este exemplo usa o método Create do SMO para criar um banco de dados e usa a propriedade State para mostrar se o banco de dados existe:

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