Utilisation d'applets de commande SQL Server

Les applets de commande Windows PowerShell sont des commandes à fonction unique qui ont généralement une convention d'affectation des noms « verbe-nom », par exemple Get-Help ou Set-MachineName. Le fournisseur SQL Server pour Windows PowerShell fournit des applets de commande spécifiques à SQL Server.

Applets de commande SQL Server

SQL Server 2008 implémente un petit nombre d'applets de commande SQL Server.

Dans l'environnement Windows PowerShell, l'applet de commande Get-Help fournit des informations d'aide pour chaque applet de commande. Get-Help retourne des informations telles que la syntaxe, les définitions de paramètres, les types d'entrée et de sortie et une description de l'action effectuée par l'applet de commande.

Les exemples suivants retournent l'aide de base, l'aide complète, le diagramme de la syntaxe, les paramètres et les exemples pour l'applet de commande SQL ServerEncode-SqlName :

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

Invoke-Sqlcmd prend en charge l'exécution de scripts sqlcmd ou de commandes qui contiennent des instructions Transact-SQL ou XQuery. Elle peut accepter l'entrée sqlcmd sous la forme d'un paramètre d'entrée de chaîne de caractères ou sous la forme du nom d'un fichier de script à ouvrir. Pour plus d'informations, consultez Utilisation de l'applet de commande Invoke-Sqlcmd.

Invoke-PolicyEvaluation

Invoke-PolicyEvaluation indique si un jeu de cibles d'objets SQL Server est conforme ou non aux conditions définies dans les stratégies de la Gestion basée sur des stratégies. Vous pouvez éventuellement utiliser l'applet de commande pour reconfigurer toutes les options définissables dans les objets cibles qui ne sont pas conformes aux conditions des stratégies. Pour plus d'informations, consultez Utilisation de l'applet de commande Invoke-PolicyEvaluation.

Encodage et décodage d'identificateurs SQL Server

Les identificateurs sont les noms d'objets SQL Server. Les identificateurs SQL Server prennent en charge une plage de caractères plus étendue que le langage Windows PowerShell. Les identificateurs entre crochets ou entre guillemets du moteur de base de données ont très peu de restrictions sur les caractères utilisés dans les noms. Certains caractères utilisés dans des identificateurs entre crochets ou entre guillemets ne peuvent pas être placés dans une séquence d'échappement à l'aide du caractère d'échappement Windows PowerShell « ` », et peuvent poser des problèmes lors de l'utilisation du fournisseur SQL Server.

L'applet de commande Encode-SqlName prend comme entrée un identificateur SQL Server et remet en forme tous les caractères non pris en charge par le langage Windows PowerShell avec une représentation qui fonctionnera dans Windows PowerShell. L'applet de commande Decode-SqlName prend comme entrée un identificateur SQL Server encodé et retourne l'identificateur d'origine. Exemple :

  • Encode-SqlName "Table:Test" retourne la chaîne "Table%3ATest".

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

Pour plus d'informations, consultez Utilisation d'identificateurs SQL Server dans PowerShell.

Conversion d'URN en chemins d'accès

Le modèle objet SMO (SQL Server Management Objects) génère des URN (Uniform Resource Names) pour ses objets. Chaque URN a les mêmes informations qu'un chemin d'accès à l'objet, mais sous une forme différente. Voici, par exemple, le chemin d'accès à une table :

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

Et voici l'URN vers le même objet :

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

L'applet de commande Convert-UrnToPath convertit les chaînes URN SMO en chemins d'accès Windows PowerShell. Si des noms des nœuds contiennent des caractères étendus qui ne sont pas pris en charge dans les noms de chemins d'accès Windows PowerShell, Convert-UrnToPath les code dans leur représentation hexadécimale. Par exemple, « My:Table » est retourné sous la forme « My%3ATable ».

Dans Windows PowerShell, exécutez Get-Help Convert-UrnToPath -Examples pour obtenir des exemples d'utilisation de l'applet de commande.

Noms de paramètres partiels

Il n'est pas nécessaire de spécifier le nom entier d'un paramètre d'applet de commande. Il vous suffit de spécifier une partie suffisante du nom pour le distinguer des autres paramètres pris en charge par l'applet de commande. Ces exemples montrent trois façons différentes de spécifier le paramètre Invoke-Sqlcmd -QueryTimeout :

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