Usando os cmdlets do SQL Server

Os cmdlets Windows PowerShell são comandos de função única que normalmente contêm uma convenção de nomenclatura formada por verbo-substantivo, como Get-Help ou Set-MachineName. O provedor do SQL Server para Windows PowerShell fornece cmdlets específicos para o SQL Server.

cmdlets do SQL Server

O SQL Server 2008 implementa alguns cmdlets do SQL Server.

No ambiente Windows PowerShell, o cmdlet Get-Help fornece informações de ajuda para cada cmdlet. Get-Help retorna informações como sintaxe, definições de parâmetro, tipos de entrada e saída e uma descrição da ação executada pelo cmdlet.

Esses exemplos retornam a ajuda básica, a ajuda completa, o diagrama de sintaxe, os parâmetros e os exemplos do cmdlet Encode-SqlName do SQL Server.

get-help "Encode-SqlName"
get-help "Encode-SqlName" -Full
get-help "Encode-SqlName" -Syntax
get-help "Encode-SqlName" -Parameter *
get-help "Encode-SqlName" -Examples

Invoke-Sqlcmd

O Invoke-Sqlcmd oferece suporte à execução de scripts sqlcmd ou comandos que contém instruções Transact-SQL ou XQuery. Ele pode aceitar a entrada sqlcmd como um parâmetro de entrada da cadeia de caracteres do caractere ou como o nome de um arquivo de script a ser aberto. Para obter mais informações, consulte Usando o cmdlet do Invoke-Sqlcmd.

Invoke-PolicyEvaluation

Invoke-PolicyEvaluation relata se um conjunto de destino de objetos SQL Server é compatível com as condições definidas em políticas de gerenciamento baseadas em políticas. Opcionalmente, o cmdlet pode ser usado para reconfigurar qualquer opção definível nos objetos de destino que não obedecem às condições de políticas. Para obter mais informações, consulte Usando o cmdlet Invoke-PolicyEvaluation.

Codificando e decodificando identificadores do SQL Server

Os identificadores são os nomes dos objetos do SQL Server. Os identificadores do SQL Server oferecem suporte a uma gama mais ampla de caracteres do que a linguagem Windows PowerShell. Os identificadores do Mecanismo de Banco de Dados entre colchetes ou entre aspas do apresentam poucas restrições de caracteres usados nos nomes. Alguns dos caracteres usados nos identificadores entre colchetes ou aspas não podem ser substituídos usando o caractere de escape do Windows PowerShell `e isso pode causar problemas durante o uso do provedor do SQL Server PowerShell.

O cmdlet Encode-SqlName usa um identificador do SQL Server como entrada e reformata todos os caracteres não suportados pela linguagem Windows PowerShell usando uma representação que funcione no Windows PowerShell. O cmdlet Decode-SqlName usa um identificador codificado do SQL Server como entrada e retorna o identificador original. Por exemplo:

  • Encode-SqlName "Table:Test" retorna a cadeia de caracteres "Table%3ATest".

  • Decode-SqlName "Table%3ATest" retorna "Table:Test".

Para obter mais informações, consulte Usando identificadores do SQL Server no PowerShell.

Convertendo URNs em caminhos

O modelo SMO, Objeto de Gerenciamento do SQL Server, cria nomes de recurso uniformes (URN) para seus objetos. Cada URN tem as mesmas informações, como um caminho para o objeto, mas em um formulário diferente. Por exemplo, este é o caminho para uma tabela:

SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks2008R2\Tables\Person.Address

E esta é a URN para o mesmo objeto:

Server[@Name='MyComputer']\Database[@Name='AdventureWorks2008R2']\Table[@Name='Address' and @Schema='Person']

O cmdlet Convert-UrnToPath converte as cadeias de caracteres de URN de SMO em caminhos do Windows PowerShell. Se os nomes de nó contiverem caracteres estendidos que não são suportados em nomes de caminho do Windows PowerShell, o Convert-UrnToPath irá codificá-los em sua representação hexadecimal. Por exemplo "My:Table" será retornado como "My%3ATable".

No Windows PowerShell, execute Get-Help Convert-UrnToPath -Exemplos para obter exemplos de utilização do cmdlet.

Nomes de parâmetro parciais

Você não tem que especificar o nome inteiro de um parâmetro cmdlet. Você só tem que especificar uma parte suficiente do nome para separá-lo exclusivamente dos outros parâmetros que são suportados pelo cmdlet. Por exemplo, estes exemplos mostram três modos de especificar o parâmetro Invoke-Sqlcmd - QueryTimeout:

Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryTimeout 3
Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryTime 3
Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryT 3