Поделиться через


Навигация по путям SQL Server PowerShell

Поставщик PowerShell ядра СУБД предоставляет набор объектов в экземпляре SQL Server в структуре, аналогичной пути к файлу. Вы можете использовать командлеты Windows PowerShell для навигации по пути поставщика и создания пользовательских дисков, чтобы сократить путь, который нужно вводить.

Замечание

Существует два модуля SQL Server PowerShell; SqlServer и SQLPS.

Модуль SqlServer — это текущий модуль PowerShell для использования.

Модуль SQLPS включен в установку SQL Server (для обратной совместимости), но больше не обновляется.

Модуль SqlServer содержит обновленные версии командлетов в SQLPS и включает новые командлеты для поддержки последних функций SQL.

Установите модуль SqlServer из коллекции PowerShell.

Дополнительные сведения см. в SQL Server PowerShell.

Windows PowerShell реализует командлеты для навигации по структуре пути, представляющей иерархию объектов, поддерживаемых поставщиком PowerShell. После перехода к нужному узлу можно использовать другие командлеты для выполнения основных операций с текущим объектом. Так как командлеты часто используются, они имеют короткие канонические псевдонимы. Существует также один набор псевдонимов, который сопоставляет командлеты с аналогичными командами командной строки, а второй набор предназначен для команд оболочки UNIX.

Поставщик SQL Server реализует подмножество командлетов поставщика, показанное в следующей таблице:

командлет Канонический псевдоним Псевдоним cmd Псевдоним оболочки UNIX Описание
Получение расположения gl pwd pwd Возвращает текущий узел.
Настройка расположения sl cd, chdir cd, chdir Изменяет текущий узел.
Get-ChildItem gci dir ls Выводит список объектов, хранящихся на текущем узле.
get-Item ги Возвращает свойства текущего элемента.
переименование элемента rni rn Рен Переименовывает объект.
Удалить-Предмет Ри del, rd rm, rmdir Удаляет объект.

Это важно

Некоторые идентификаторы SQL Server (имена объектов) содержат символы, которые Windows PowerShell не поддерживает в именах путей. Дополнительные сведения об использовании имен, содержащих эти символы, см. в статье SQL Server Identifiers in PowerShell.

Сведения SQL Server, возвращаемые Get-ChildItem

Сведения, возвращаемые Get-ChildItem (или его псевдонимами dir и ls), зависят от вашего расположения в пути SQLSERVER:.

Расположение пути Результаты Get-ChildItem
SQLSERVER:\SQL Возвращает имя локального компьютера. Если вы использовали SMO или WMI для подключения к экземплярам ядра СУБД на других компьютерах, эти компьютеры также перечислены.
SQLSERVER:\SQL\ComputerName Список экземпляров ядра СУБД на компьютере.
SQLSERVER:\SQL\ComputerName InstanceName\ Список типов объектов верхнего уровня в экземпляре, таких как конечные точки, сертификаты и базы данных.
Узел класса объектов, например базы данных Список объектов этого типа, например список баз данных: master, , modelAdventureWorks2022.
Узел имени объекта, например AdventureWorks2022 Список типов объектов, содержащихся в объекте. Например, база данных будет перечислять такие типы объектов, как таблицы и представления.

По умолчанию Get-ChildItem не перечисляет системные объекты. Используйте параметр Force для просмотра системных объектов, таких как объекты в схеме sys .

Пользовательские диски

Windows PowerShell позволяет пользователям определять виртуальные диски, которые называются дисками PowerShell. Эти диски сопоставляют начальные узлы инструкции пути. Они обычно используются для сокращения путей, которые часто вводятся. SQLSERVER: пути могут быть длинными, занимает место в окне Windows PowerShell и требует много ввода. Если вы собираетесь выполнить большую работу на определенном узле пути, можно определить пользовательский диск Windows PowerShell, который сопоставляется с этим узлом.

Использование псевдонимов командлетов PowerShell

Использование псевдонима командлета

  • Вместо ввода полного имени командлета введите более короткий псевдоним или тот, который сопоставляется с знакомой командой командной строки оценки.

Пример: псевдоним

Например, можно использовать один из следующих наборов командлетов или псевдонимов, чтобы получить список экземпляров SQL Server, доступных для вас, перейдя к папке SQLSERVER:\SQL и запросив список дочерних элементов для папки:

## 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

Использование Get-ChildItem

Возврат сведений с помощью Get-Childitem

  1. Перейдите к узлу, для которого требуется список дочерних элементов

  2. Запустите Get-Childitem, чтобы получить список.

Пример: Get-ChildItem

В этих примерах показаны сведения, возвращаемые Get-Childitem для разных узлов в пути провайдера 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

Создание пользовательского диска

Создание и использование пользовательского диска

  1. Используйте New-PSDrive для определения пользовательского диска. Используйте корневой параметр, чтобы указать путь, представленный пользовательским именем диска.

  2. Ссылка на имя пользовательского диска в командлетах навигации пути, таких как Set-Location.

Пример: Пользовательский диск

В этом примере создается виртуальный диск с именем AWDB, который сопоставляется с узлом для развернутой AdventureWorks2022 копии образца базы данных. Затем виртуальный диск используется для перехода к таблице в базе данных.

## 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