Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Dopo essere passati a un nodo in un percorso del provider del motore di database, è possibile eseguire operazioni o recuperare informazioni usando i metodi e le proprietà dell'oggetto di gestione motore di database associato al nodo in questione.
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.
Dopo aver eseguito il passaggio a un nodo in un percorso del provider del motore di database, è possibile eseguire due tipi di azioni:
È possibile eseguire i cmdlet di Windows PowerShell che operano sui nodi, ad esempio Rename-Item.
È possibile chiamare i metodi dal modello a oggetti di gestione di SQL Server associato, ad esempio SMO. Ad esempio, se si passa al nodo Databases in un percorso, è possibile usare i metodi e le proprietà della classe
<xref:Microsoft.SqlServer.Management.Smo.Database>
.
Il provider di SQL Server viene usato per gestire gli oggetti in un'istanza del motore di database. Non viene utilizzato per i dati nei database. Se si è passati a una tabella o una vista, non è possibile utilizzare il provider per selezionare, inserire, aggiornare o eliminare i dati. Usare il cmdlet Invoke-Sqlcmd per eseguire una query o per modificare dati in tabelle e viste nell'ambiente di Windows PowerShell. Per altre informazioni, vedere Invoke-Sqlcmd.
Elencare metodi e proprietà
Elenco di metodi e proprietà
Per visualizzare i metodi e le proprietà disponibili per specifici oggetti o classi di oggetti, usare il cmdlet Get-Member .
Esempio: Elencare metodi e proprietà
In questo esempio viene impostata una variabile di Windows PowerShell sulla classe SMO <xref:Microsoft.SqlServer.Management.Smo.Database>
e vengono elencati i metodi e le proprietà:
$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database
$MyDBVar | Get-Member -Type Methods
$MyDBVar | Get-Member -Type Properties
Si può anche usare Get-Member per visualizzare un elenco di proprietà e metodi associati al nodo finale di un percorso di Windows PowerShell.
In questo esempio si passa al nodo Databases in un percorso SQLSERVER: e vengono elencate le proprietà della raccolta:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
Get-Item . | Get-Member -Type Properties
Questo esempio passa al AdventureWorks2022
nodo in un'istanza di SQLSERVER: percorso ed elenca le proprietà dell'oggetto:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022
Get-Item . | Get-Member -Type Properties
Utilizzare metodi e proprietà
Utilizzo di metodi e proprietà SMO
Per eseguire operazioni su oggetti di un percorso del provider del motore di database, è possibile usare metodi e proprietà SMO.
Esempio: uso di metodi e proprietà
In questo esempio viene utilizzata la proprietà SMO Schema per ottenere un elenco delle tabelle dallo schema Sales in AdventureWorks2022
:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022\Tables
Get-ChildItem | where {$_.Schema -eq "Sales"}
In questo esempio viene utilizzato il metodo SMO Script per generare uno script contenente le istruzioni CREATE VIEW necessarie per ricreare le viste in 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 }
In questo esempio viene utilizzato il metodo Create SMO per creare un database e quindi viene utilizzata la proprietà State per indicare se il database esiste:
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