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


Работа с путями SQL Server PowerShell

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

Замечание

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

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

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

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

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

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

После перехода к узлу в пути поставщика ядра СУБД можно выполнить два типа действий:

  • Можно запускать командлеты Windows PowerShell, работающие с узлами, такие как Rename-Item.

  • Методы можно вызвать из связанной объектной модели управления SQL Server, например SMO. Например, если перейти в пути к узлу Databases, то можно использовать методы и свойства класса <xref:Microsoft.SqlServer.Management.Smo.Database> .

Поставщик SQL Server используется для управления объектами в экземпляре ядро СУБД. Он не предназначен для работы с данными в базах данных. Если выбрана таблица или представление, нельзя использовать поставщик для выбора, вставки, обновления или удаления данных. Чтобы запросить или изменить данные в таблицах и представлениях из среды Windows PowerShell, воспользуйтесь командлетом Invoke-Sqlcmd . Дополнительные сведения см. в разделе Invoke-Sqlcmd.

Перечисление методов и свойств

Перечисление методов и свойств

Командлет Get-Member используется для просмотра методов и свойств, доступных для определенных объектов или классов объектов.

Пример. Перечисление методов и свойств

В этом примере задается переменная Windows PowerShell для класса <xref:Microsoft.SqlServer.Management.Smo.Database> модели SMO и перечисляются методы и свойства:

$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database
$MyDBVar | Get-Member -Type Methods
$MyDBVar | Get-Member -Type Properties

Командлет Get-Member также можно использовать для вывода методов и свойств, связанных с конечным узлом пути Windows PowerShell.

В этом примере выполняется переход к узлу Databases на диске SQLSERVER и перечисление свойства коллекции.

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
Get-Item . | Get-Member -Type Properties

Этот пример переходит к AdventureWorks2022 узлу в SQLSERVER: путь и перечисляет свойства объекта:

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022
Get-Item . | Get-Member -Type Properties

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

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

Для выполнения работы с объектами из пути поставщика ядро СУБД можно использовать методы и свойства SMO.

Пример. Использование методов и свойств

В этом примере свойство схемы SMO используется для получения списка таблиц из схемы Sales в AdventureWorks2022:

Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks2022\Tables
Get-ChildItem | where {$_.Schema -eq "Sales"}

В этом примере используется метод скрипта SMO для создания скрипта, содержащего инструкции CREATE VIEW , необходимо повторно создать представления в 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 }

В этом примере используется метод Create модели SMO, чтобы создать базу данных, а затем используется свойство State , чтобы показать, существует ли эта база данных:

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