SQL Server PowerShellSQL Server PowerShell

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data WarehouseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database ДаУправляемый экземпляр SQL AzureAzure SQL Managed InstanceYesУправляемый экземпляр SQL AzureAzure SQL Managed Instance даAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics даПараллельное хранилище данныхParallel Data WarehouseyesПараллельное хранилище данныхParallel Data Warehouse

Установка компонентов SQL Server PowerShellInstall SQL Server PowerShell

Существует два модуля SQL Server PowerShell — SqlServer и SQLPS .There are two SQL Server PowerShell modules; SqlServer and SQLPS.

Самым актуальным модулем PowerShell является модуль SqlServer.The SqlServer module is the current PowerShell module to use.

Модуль SQLPS входит в состав установки SQL Server (для обеспечения обратной совместимости), но больше не обновляется.The SQLPS module is included with the SQL Server installation (for backward compatibility) but is no longer updated.

Модуль SqlServer содержит обновленные версии командлетов в SQLPS и новые командлеты для поддержки последних функций SQL.The SqlServer module contains updated versions of the cmdlets in SQLPS and includes new cmdlets to support the latest SQL features.

Предыдущие версии модуля SqlServer входили в состав среды SQL Server Management Studio (SSMS), но только с SSMS версий 16.x.Previous versions of the SqlServer module were included with SQL Server Management Studio (SSMS), but only with the 16.x versions of SSMS.

Для работы PowerShell с SSMS версии 17.0 и более поздних установите модуль SqlServer из коллекции PowerShell.To use PowerShell with SSMS 17.0 and later, install the SqlServer module from the PowerShell Gallery.

Вы также можете использовать PowerShell с Azure Data Studio.You can also use PowerShell with Azure Data Studio.

Почему модуль SQLPS изменился на SqlServer?Why did the module change from SQLPS to SqlServer?

Для поставки обновлений SQL PowerShell было необходимо изменить удостоверение модуля SQL PowerShell, а также программу-оболочку, известную как 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. В связи с эти изменением теперь существует два модуля SQL PowerShell — модуль SqlServer и модуль SQLPS.Because of this change, there are now two SQL PowerShell modules, the SqlServer module, and the SQLPS module.

Обновите скрипты PowerShell, если вы импортируете модуль SQLPS.Update your PowerShell scripts if you import the SQLPS module.

Если у вас есть скрипты PowerShell, которые выполняют команду Import-Module -Name SQLPS, и вы хотите использовать преимущества новых функциональных возможностей поставщика и новых командлетов, необходимо изменить их на 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. Новый модуль устанавливается в папку %ProgramFiles%\WindowsPowerShell\Modules\SqlServer.The new module is installed to %ProgramFiles%\WindowsPowerShell\Modules\SqlServer folder. Поэтому не нужно обновлять переменную $env:PSModulePath.As such, you don't have to update the $env:PSModulePath variable. При наличии скриптов, использующих версию модуля с именем SqlServer, созданную сторонними производителями или сообществом, используйте параметр Prefix, чтобы имена не конфликтовали.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.

Рекомендуется запустить сценарий с помощью Import-Module SQLServer, чтобы избежать проблем параллельной установки, если модуль SQLPS установлен на том же компьютере.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.

Этот раздел относится к скриптам, выполняемым из PowerShell, а не агента SQL.This section applies to scripts executed from PowerShell and not the SQL Agent. Новый модуль можно использовать с шагами задания агента SQL с помощью #NOSQLPS.The new module can be used with SQL Agent job steps using #NOSQLPS.

Компоненты SQL Server PowerShellSQL Server PowerShell Components

Компоненты модуля SqlServer:The SqlServer module comes with:

  • Поставщики PowerShell — предоставляет простой механизм навигации, аналогичный путям в файловой системе.PowerShell Providers, which enables a simple navigation mechanism similar to file system paths. Можно построить пути, аналогичные путям файловой системы, где диску соответствует управляющая объектная модель SQL Server, а узлы основаны на классах объектной модели.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. Затем можно использовать привычные команды, такие как cd и dir , чтобы перемещаться по путям, аналогично переходу по структуре папок в окне командной строки.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. Для выполнения действий на узлах пути можно использовать другие команды, например ren или del.You can use other commands, such as ren or del, to perform actions on the nodes in the path.

  • Набор командлетов, которые поддерживают такие действия, как запуск скрипта sqlcmd, содержащего инструкции Transact-SQL или XQuery.A set of cmdlets that support actions such as running a sqlcmd script containing Transact-SQL or XQuery statements.

  • Поставщик AS и командлеты, которые ранее устанавливались отдельно.The AS provider and cmdlets, which before they were installed separately.

Версии SQL ServerSQL Server versions

Командлеты SQL PowerShell можно использовать для управления экземплярами базы данных SQL Azure, Azure Synapse Analytics и во всех поддерживаемых продуктах SQL Server.SQL PowerShell cmdlets can be used to manage instances of Azure SQL Database, Azure Synapse Analytics, and all supported SQL Server products.

Идентификаторы SQL Server, содержащие символы, не поддерживаемые в путях Windows PowerShellSQL Server identifiers that contain characters not supported in PowerShell paths

Командлеты Encode-Sqlname и Decode-Sqlname помогают указать идентификаторы SQL Server, содержащие символы, не поддерживаемые в путях Windows PowerShell.The Encode-Sqlname and Decode-Sqlname cmdlets help you specify SQL Server identifiers that contain characters not supported in PowerShell paths. Дополнительные сведения см. в статье SQL Server Identifiers in PowerShell.For more information, see SQL Server Identifiers in PowerShell.

Используйте командлет Convert-UrnToPath, чтобы преобразовать уникальное имя ресурса для объекта ядра СУБД в путь для поставщика 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. Дополнительные сведения см. в статье Convert URNs to SQL Server Provider Paths.For more information, see Convert URNs to SQL Server Provider Paths.

Выражения запросов и уникальные имена ресурсовQuery Expressions and Unique Resource Names

Выражения запроса — это строки, которые используют синтаксис, напоминающий XPath для указания набора условий, перечисляющих один или несколько объектов в иерархии объектной модели.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. Уникальное имя ресурса (URN) — это определенный тип строки выражения запроса, который уникально определяет один объект.A Unique Resource Name (URN) is a specific type of query expression string that uniquely identifies a single object. Дополнительные сведения см. в статье Query Expressions and Uniform Resource Names.For more information, see Query Expressions and Uniform Resource Names.

Агент SQL ServerSQL Server Agent

Модуль, используемый агентом SQL Server, не изменился.There's no change to the module used by SQL Server Agent. Таким образом, задания агента SQL Server, которые содержат шаги задания типа PowerShell, используют модуль SQLPS.As such, SQL Server Agent jobs, which have PowerShell type job steps use the SQLPS module. Дополнительные сведения: Запуск PowerShell с помощью агента SQL Server.For more information, see How to run PowerShell with SQL Server Agent. Однако начиная с версии SQL Server 2019 вы можете отключить SQLPS.However, starting with SQL Server 2019, you can disable SQLPS. Для этого в первой строке шага задания типа PowerShell можно добавить #NOSQLPS, чтобы агент SQL не запускал автоматическую загрузку модуля 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. После этого задание агента SQL Server запустит установленную на компьютере версию PowerShell, и вы можете использовать любой другой модуль PowerShell.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.

Если вы хотите использовать модуль SqlServer в шаге задания агента SQL, можно поместить этот код в первые две строки скрипта.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

Справка по командлетамCmdlet reference

Дальнейшие действияNext steps