SQL Server PowerShellSQL Server PowerShell

Si applica a:Applies to: sìSQL ServerSQL Server (tutte le versioni supportate) yesSQL ServerSQL Server (all supported versions) Sìdatabase SQL di AzureAzure SQL DatabaseYesdatabase SQL di AzureAzure SQL Database SìIstanza gestita di SQL di AzureAzure SQL Managed InstanceYesIstanza gestita di SQL di AzureAzure SQL Managed Instance sìAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics sìParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data WarehouseSi applica a:Applies to: sìSQL ServerSQL Server (tutte le versioni supportate) yesSQL ServerSQL Server (all supported versions) Sìdatabase SQL di AzureAzure SQL DatabaseYesdatabase SQL di AzureAzure SQL Database SìIstanza gestita di SQL di AzureAzure SQL Managed InstanceYesIstanza gestita di SQL di AzureAzure SQL Managed Instance sìAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics sìParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse

Installare SQL Server PowerShellInstall SQL Server PowerShell

Esistono due moduli SQL Server PowerShell: SqlServer e SQLPS .There are two SQL Server PowerShell modules; SqlServer and SQLPS.

SqlServer è il modulo corrente di PowerShell da usare.The SqlServer module is the current PowerShell module to use.

SQLPS è incluso nell'installazione di SQL Server (per compatibilità con le versioni precedenti), ma non viene più aggiornato.The SQLPS module is included with the SQL Server installation (for backward compatibility) but is no longer updated.

Il modulo SqlServer contiene le versioni aggiornate dei cmdlet di SQLPS e include nuovi cmdlet per il supporto delle funzionalità SQL più recenti.The SqlServer module contains updated versions of the cmdlets in SQLPS and includes new cmdlets to support the latest SQL features.

Le versioni precedenti del modulo SqlServer erano incluse in SQL Server Management Studio (SSMS), ma solo con le versioni 16.x di SSMS.Previous versions of the SqlServer module were included with SQL Server Management Studio (SSMS), but only with the 16.x versions of SSMS.

Per usare PowerShell con SSMS versione 17.0 e successive, installare il modulo SqlServer da PowerShell Gallery.To use PowerShell with SSMS 17.0 and later, install the SqlServer module from the PowerShell Gallery.

È anche possibile usare PowerShell con Azure Data Studio.You can also use PowerShell with Azure Data Studio.

Perché il modulo è cambiato da SQLPS a SqlServer?Why did the module change from SQLPS to SqlServer?

Per inviare gli aggiornamenti di SQL PowerShell, è stato necessario modificare l'identità del modulo SQL PowerShell, nonché il wrapper noto come SQLPS.exe.To ship SQL PowerShell updates, we had to change the identity of the SQL PowerShell module, and the wrapper known as SQLPS.exe. A causa di questa modifica, sono ora presenti due moduli SQL PowerShell: SqlServer e SQLPS.Because of this change, there are now two SQL PowerShell modules, the SqlServer module, and the SQLPS module.

Aggiornare gli script di PowerShell se si importa il modulo SQLPS.Update your PowerShell scripts if you import the SQLPS module.

Se si hanno script di PowerShell script che eseguono Import-Module -Name SQLPS e se si vogliono sfruttare la nuova funzionalità del provider e i nuovi cmdlet, è necessario modificarli in Import-Module -Name SqlServer.If you have any PowerShell scripts that run Import-Module -Name SQLPS, and you want to take advantage of the new provider functionality and new cmdlets, you must change them to Import-Module -Name SqlServer. Il nuovo modulo viene installato nella cartella %ProgramFiles%\WindowsPowerShell\Modules\SqlServer.The new module is installed to %ProgramFiles%\WindowsPowerShell\Modules\SqlServer folder. Pertanto, non è necessario aggiornare la variabile $env:PSModulePath.As such, you don't have to update the $env:PSModulePath variable. Se si hanno script che usano una versione di terze parti o community di un modulo denominato SqlServer, usare il parametro Prefix per evitare conflitti di nome.If you have scripts that use a third-party or community version of a module named SqlServer, use the Prefix parameter to avoid name collisions.

È consigliabile avviare lo script con Import-Module SQLServer per evitare problemi di istanze affiancate se il modulo SQLPS viene installato nello stesso computer.It is recommended to start your script with Import-Module SQLServer to avoid side-by-side issues if the SQLPS module is installed on the same machine.

Questa sezione si applica agli script eseguiti da PowerShell e non da SQL Agent.This section applies to scripts executed from PowerShell and not the SQL Agent. Il nuovo modulo può essere usato con i passaggi del processo di SQL Agent tramite #NOSQLPS.The new module can be used with SQL Agent job steps using #NOSQLPS.

Componenti di PowerShell di SQL ServerSQL Server PowerShell Components

Il modulo SqlServer include:The SqlServer module comes with:

  • Provider PowerShell, che forniscono un semplice meccanismo di navigazione analogo ai percorsi del file system.PowerShell Providers, which enables a simple navigation mechanism similar to file system paths. È possibile creare percorsi simili a quelli del file system, in cui l'unità è associata a un modello a oggetti di gestione di SQL Server e i nodi sono basati sulle classi del modello a oggetti.You can build paths similar to file system paths, where the drive is associated with a SQL Server management object model, and the nodes are based on the object model classes. È quindi possibile usare comandi comuni come cd e dir per un'esplorazione dei percorsi simile all'esplorazione delle cartelle in una finestra del prompt dei comandi.You can then use familiar commands such as cd and dir to navigate the paths similar to the way you navigate folders in a command prompt window. È possibile usare altri comandi, ad esempio ren o del, per eseguire azioni sui nodi nel percorso.You can use other commands, such as ren or del, to perform actions on the nodes in the path.

  • Un set di cmdlet che supportano azioni come l'esecuzione di uno script sqlcmd contenente istruzioni Transact-SQL o XQuery.A set of cmdlets that support actions such as running a sqlcmd script containing Transact-SQL or XQuery statements.

  • I cmdlet e il provider AS, che in precedenza erano installati separatamente.The AS provider and cmdlets, which before they were installed separately.

Versioni di SQL ServerSQL Server versions

I cmdlet SQL PowerShell possono essere usati per gestire le istanze del database SQL di Azure, di Azure Synapse Analytics e di tutti i prodotti SQL Server supportati.SQL PowerShell cmdlets can be used to manage instances of Azure SQL Database, Azure Synapse Analytics, and all supported SQL Server products.

Identificatori SQL Server che contengono caratteri non supportati nei percorsi di PowerShellSQL Server identifiers that contain characters not supported in PowerShell paths

I cmdlet Encode-Sqlname e Decode-Sqlname consentono di specificare identificatori SQL Server che contengono caratteri non supportati nei percorsi di Windows PowerShell.The Encode-Sqlname and Decode-Sqlname cmdlets help you specify SQL Server identifiers that contain characters not supported in PowerShell paths. Per altre informazioni, vedere Identificatori di SQL Server in PowerShell.For more information, see SQL Server Identifiers in PowerShell.

Usare il cmdlet Convert-UrnToPath per convertire un URN (Uniform Resource Name) di un oggetto motore di database in un percorso del provider SQL Server PowerShell.Use the Convert-UrnToPath cmdlet to convert a Unique Resource Name for a Database Engine object to a path for the SQL Server PowerShell provider. Per altre informazioni, vedere Conversione di URN in percorsi di provider di SQL Server.For more information, see Convert URNs to SQL Server Provider Paths.

Espressioni di query e Unique Resource NameQuery Expressions and Unique Resource Names

Le espressioni di query sono stringhe che usano una sintassi analoga a XPath per specificare un set di criteri che enumera uno o più oggetti in una gerarchia del modello a oggetti.Query expressions are strings that use syntax similar to XPath to specify a set of criteria that enumerates one or more objects in an object model hierarchy. L'URN (Unique Resource Name) è un tipo specifico di stringa di espressione di query che identifica un singolo oggetto in modo univoco.A Unique Resource Name (URN) is a specific type of query expression string that uniquely identifies a single object. Per altre informazioni, vedere Espressioni di query e Uniform Resource Name.For more information, see Query Expressions and Uniform Resource Names.

SQL Server AgentSQL Server Agent

Non sono state apportate modifiche al modulo usato da SQL Server Agent.There's no change to the module used by SQL Server Agent. Di conseguenza, i processi di SQL Server Agent, che hanno passaggi di processo di tipo PowerShell, usano il modulo SQLPS.As such, SQL Server Agent jobs, which have PowerShell type job steps use the SQLPS module. Per altre informazioni, vedere Come eseguire PowerShell con SQL Server Agent.For more information, see How to run PowerShell with SQL Server Agent. A partire da SQL Server 2019, tuttavia, è possibile disabilitare SQLPS.However, starting with SQL Server 2019, you can disable SQLPS. A tale scopo, nella prima riga di un passaggio di processo di tipo PowerShell è possibile aggiungere #NOSQLPS per impedire a SQL Agent di caricare automaticamente il modulo SQLPS.To do so, on the first line of a job step of the type PowerShell you can add #NOSQLPS, which stops the SQL Agent from auto-loading the SQLPS module. Quando si esegue questa operazione, il processo di SQL Agent esegue la versione di PowerShell installata nel computer e quindi è possibile usare qualsiasi altro modulo di PowerShell desiderato.When you do this, your SQL Agent Job runs the version of PowerShell installed on the machine, and then you can use any other PowerShell module you like.

Se si vuole usare il modulo SqlServer nel passaggio del processo di SQL Agent, inserire il codice nelle prime due righe dello script.If you want to use the SqlServer module in your SQL Agent Job step, you can place this code on the first two lines of your script.

#NOSQLPS
Import-Module -Name SqlServer

Informazioni di riferimento sui cmdletCmdlet reference

Passaggi successiviNext steps