Condividi tramite


Esplorare i percorsi di SQL Server PowerShell

Il provider PowerShell del motore di database espone il set di oggetti in un'istanza di SQL Server in una struttura simile a un percorso di file. È possibile usare i cmdlet di Windows PowerShell per spostarsi nel percorso del provider e creare unità personalizzate per abbreviare il percorso da digitare.

Annotazioni

Sono disponibili due moduli di SQL Server PowerShell. SqlServer e SQLPS.

Il modulo SqlServer è il modulo di PowerShell corrente da usare.

Il modulo SQLPS è incluso nell'installazione di SQL Server (per compatibilità con le versioni precedenti) ma non viene più aggiornato.

Il modulo SqlServer contiene versioni aggiornate dei cmdlet in SQLPS e include nuovi cmdlet per supportare le funzionalità SQL più recenti.

Installare il modulo SqlServer da PowerShell Gallery.

Per altre informazioni, vedere SQL Server PowerShell.

Windows PowerShell implementa i cmdlet per esplorare la struttura del percorso che rappresenta la gerarchia di oggetti supportati da un provider di PowerShell. Quando si passa a un nodo nel percorso, è possibile utilizzare altri cmdlet per eseguire operazioni di base sull'oggetto corrente. Poiché i cmdlet vengono usati di frequente, hanno alias brevi e canonici. Esiste anche un insieme di alias che mappa i cmdlet a comandi simili a quelli del prompt dei comandi e un altro insieme per i comandi della shell UNIX.

Il provider SQL Server implementa un subset dei cmdlet del provider, come illustrato nella tabella seguente:

cmdlet Alias canonico alias cmd Alias della shell UNIX Descrizione
Ottieni-Posizione Gl Pwd Pwd Ottiene il nodo attuale.
set-location Sl cd, chdir cd, chdir Modifica il nodo corrente.
Get-ChildItem Gci dir Ls Elenca gli oggetti archiviati nel nodo corrente.
Get-Item Gi Restituisce le proprietà dell'elemento corrente.
rename-item rni Rn Ren Rinomina un oggetto .
Rimuovi-Elemento ri del, rd rm, rmdir Rimuove un oggetto .

Importante

Alcuni identificatori di SQL Server (nomi di oggetti) contengono caratteri che Windows PowerShell non supporta nei nomi dei percorsi. Per altre informazioni su come usare i nomi che contengono questi caratteri, vedere Identificatori di SQL Server in PowerShell.

Informazioni di SQL Server restituite da Get-ChildItem

Le informazioni restituite da Get-ChildItem (o i relativi alias dir e ls ) dipendono dalla posizione in un percorso SQLSERVER: .

Posizione del percorso Get-ChildItem i risultati
SQLSERVER:\SQL Restituisce il nome del computer locale. Se è stato usato SMO o WMI per connettersi alle istanze del motore di database in altri computer, tali computer sono elencati anche.
SQLSERVER:\SQL\ComputerName L'elenco delle istanze del motore di database sul computer.
SQLSERVER:\SQL\ComputerName InstanceName\ Elenco dei tipi di oggetto di primo livello nell'istanza, ad esempio Endpoint, Certificati e Database.
Nodo della classe oggetto, ad esempio Database Elenco di oggetti di quel tipo, ad esempio l'elenco di database: master, model, AdventureWorks2022.
Nodo del nome dell'oggetto, ad esempio AdventureWorks2022 Elenco di tipi di oggetto contenuti nell'oggetto . Ad esempio, un database elenca i tipi di oggetto, ad esempio tabelle e viste.

Per impostazione predefinita, Get-ChildItem non elenca alcun oggetto di sistema. Usare il parametro Force per visualizzare gli oggetti di sistema, ad esempio gli oggetti nello schema sys .

Unità personalizzate

Windows PowerShell consente agli utenti di definire unità virtuali, denominate unità di PowerShell. Queste unità eseguono il mapping sui nodi iniziali di un'istruzione path. Vengono in genere usati per abbreviare i percorsi digitati di frequente. SQLSERVER: i percorsi possono ottenere molto tempo, occupando spazio nella finestra di Windows PowerShell e richiedendo molta digitazione. Se si intende eseguire molte operazioni in un nodo di percorso specifico, è possibile definire un'unità di Windows PowerShell personalizzata che esegue il mapping a tale nodo.

Usare gli alias dei cmdlet di PowerShell

Usare un alias di cmdlet

  • Invece di digitare il nome completo di un cmdlet, digita un alias più breve o uno che corrisponde a un comando del prompt dei comandi familiare.

Esempio: Alias

Ad esempio, è possibile usare uno dei seguenti set di cmdlet o alias per recuperare un elenco delle istanze di SQL Server disponibili passando alla cartella SQLSERVER:\SQL e richiedendo l'elenco di elementi figlio per la cartella:

## Shows using the full cmdet name.
Set-Location SQLSERVER:\SQL
Get-ChildItem

## Shows using canonical aliases.
sl SQLSERVER:\SQL
gci

## Shows using command prompt aliases.
cd SQLSERVER:\SQL
dir

## Shows using Unix shell aliases.
cd SQLSERVER:\SQL
ls

Usare Get-ChildItem

Restituire informazioni usando Get-Childitem

  1. Passare al nodo per il quale si desidera un elenco di elementi figlio

  2. Eseguire Get-Childitem per ottenere l'elenco.

Esempio: Get-ChildItem

Questi esempi illustrano le informazioni restituite da Get-Childitem per nodi diversi in un percorso del provider SQL Server.

## Return the current computer and any computer
## to which you have made a SQL or WMI connection.
Set-Location SQLSERVER:\SQL
Get-ChildItem

## List the instances of the Database Engine on the local computer.

Set-Location SQLSERVER:\SQL\localhost
Get-ChildItem

## Lists the categories of objects available in the
## default instance on the local computer.
Set-Location SQLSERVER:\SQL\localhost\DEFAULT
Get-ChildItem

## Lists the databases from the local default instance.
## The force parameter is used to include the system databases.
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
Get-ChildItem -force

Creare un'unità personalizzata

Creare e usare un'unità personalizzata

  1. Usare New-PSDrive per definire un'unità personalizzata. Usare il parametro Root per specificare il percorso rappresentato dal nome dell'unità personalizzata.

  2. Fare riferimento al nome dell'unità personalizzata nei cmdlet di navigazione del percorso, ad esempio Set-Location.

Esempio: Unità personalizzata

Questo esempio crea un'unità virtuale denominata AWDB che esegue il mapping al nodo per una copia distribuita del AdventureWorks2022 database di esempio. L'unità virtuale viene quindi usata per accedere a una tabella nel database.

## Create a new virtual drive.
New-PSDrive -Name AWDB -Root SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022

## Use AWDB: to navigate to a specific table.
Set-Location AWDB:\Tables\Purchasing.Vendor