Utiliser des chemins d'accès PowerShell SQL Server

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Après avoir accédé à un nœud dans un chemin d'accès de fournisseur du Moteur de base de données , vous pouvez effectuer des opérations ou récupérer des informations à l'aide des méthodes et propriétés de l'objet de gestion du Moteur de base de données associé au nœud.

Notes

Il existe deux modules SQL Server PowerShell : SqlServer et SQLPS.

Le module SqlServer est le module PowerShell actuel à utiliser.

Le module SQLPS fait partie de l’installation de SQL Server (à des fins de compatibilité descendante), mais il n’est plus mis à jour.

Le module SqlServer contient les versions mises à jour des applets de commande disponibles dans SQLPS ainsi que de nouvelles applets de commande pour prendre en charge les dernières fonctionnalités SQL.

Installez le module SqlServer à partir de PowerShell Gallery.

Pour plus d’informations, consultez SQL Server PowerShell.

Après avoir accédé à un nœud dans un chemin de fournisseur du Moteur de base de données, vous pouvez effectuer deux types d’actions :

  • Vous pouvez exécuter des applets de commande Windows PowerShell qui s’appliquent à des nœuds, telles que Rename-Item.

  • Vous pouvez appeler les méthodes du modèle objet SMO ( SQL Server Management Objects) associé, tel que SMO. Par exemple, si vous accédez au nœud Databases dans un chemin d’accès, vous pouvez utiliser les méthodes et propriétés de la classe Database .

Le fournisseur SQL Server est utilisé pour gérer les objets dans une instance du Moteur de base de données. Il n'est pas utilisé pour travailler avec les données de bases de données. Si vous avez accédé à une table ou une vue, vous ne pouvez pas utiliser le fournisseur pour sélectionner, insérer, mettre à jour ou supprimer des données. Utilisez l’applet de commande Invoke-Sqlcmd pour interroger ou modifier des données dans des tables et des vues à partir de l’environnement Windows PowerShell. Pour plus d’informations, consultez Invoke-Sqlcmd (applet de commande).

Affichage de la liste des méthodes et des propriétés

Affichage de la liste des méthodes et des propriétés

Pour afficher les méthodes et propriétés disponibles pour des objets ou classes d’objets spécifiques, utilisez l’applet de commande Get-Member .

Exemples : Affichage de la liste des méthodes et des propriétés

Cet exemple affecte à une variable Windows PowerShell la classe Database SMO et répertorie les méthodes et les propriétés :

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

Vous pouvez également utiliser Get-Member pour répertorier les méthodes et les propriétés associées au nœud de fin d’un chemin d’accès Windows PowerShell.

L'exemple suivant accède au nœud Databases d'un chemin d'accès SQLSERVER: et répertorie les propriétés de collection :

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

Cet exemple accède au nœud AdventureWorks2022 d'un chemin d'accès SQLSERVER: et répertorie les propriétés d'objet :

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

Utilisation des méthodes et des propriétés

Utilisation des méthodes et des propriétés SMO

Pour effectuer un travail sur les objets d'un chemin d'accès de fournisseur du Moteur de base de données , vous pouvez utiliser les méthodes et les propriétés SMO.

Exemples : Utilisation des méthodes et des propriétés

L'exemple suivant utilise la propriété SMO Schema pour obtenir la liste des tables du schéma Sales dans AdventureWorks2022 :

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

L'exemple suivant utilise la méthode SMO Script pour générer un script qui contient les instructions CREATE VIEW que vous devez avoir pour recréer les affichages dans 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 }  

L'exemple suivant utilise la méthode SMO Create pour créer une base de données, puis la propriété State pour indiquer si la base de données 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  

Voir aussi