Trabajar con rutas acceso de SQL Server PowerShell

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Después de haber navegado a un nodo de una ruta de acceso del proveedor de Motor de base de datos , puede realizar el trabajo o recuperar información mediante los métodos y propiedades de los objetos de administración de Motor de base de datos asociados al nodo.

Nota:

Hay dos módulos de SQL Server PowerShell: SqlServer y SQLPS.

El módulo SqlServer es el módulo de PowerShell actual que se va a usar.

El módulo SQLPS está incluido en la instalación de SQL Server (por motivos de compatibilidad con versiones anteriores), pero ya no se actualiza.

El módulo SqlServer contiene versiones actualizadas de los cmdlets en SQLPS e incluye cmdlets para admitir las características más recientes de SQL.

Instale el módulo SqlServer desde la Galería de PowerShell.

Para más información, consulte el artículo sobre SQL Server PowerShell.

Después de haber navegado a un nodo de una ruta de acceso del proveedor de Motor de base de datos, puede realizar dos tipos de acciones:

  • Puede ejecutar los cmdlets de Windows PowerShell que operan en los nodos, como Rename-Item.

  • Puede llamar a los métodos desde el modelo de objetos de administración de SQL Server asociado, como SMO. Por ejemplo, si navega al nodo Bases de datos de una ruta de acceso, puede usar los métodos y las propiedades de la clase Database .

El proveedor de SQL Server se utiliza para administrar los objetos en una instancia de Motor de base de datos. No se utiliza para trabajar con los datos de las bases de datos. Si ha navegado a una tabla o vista, no puede utilizar el proveedor para seleccionar, insertar, actualizar o eliminar datos. Use el cmdlet Invoke-Sqlcmd para consultar o cambiar los datos de las tablas y vistas del entorno de Windows PowerShell. Para obtener más información, vea cmdlet Invoke-Sqlcmd.

Enumerar métodos y propiedades

Enumerar métodos y propiedades

Para ver los métodos y propiedades disponibles de determinados objetos o clases de objetos, use el cmdlet Get-Member .

Ejemplos: Enumerar métodos y propiedades

En este ejemplo se establece una variable de Windows PowerShell en la clase Database de SMO y se enumeran los métodos y las propiedades:

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

También puede usar Get-Member para mostrar los métodos y propiedades asociados con el nodo final de una ruta de acceso de Windows PowerShell.

En este ejemplo se navega al nodo Databases de una ruta de acceso de SQLSERVER: y se muestran las propiedades de la colección:

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

En este ejemplo se navega al nodo AdventureWorks2022 de una ruta de acceso de SQLSERVER: y se muestran las propiedades del objeto:

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

Usar métodos y propiedades

Usar métodos y propiedades de SMO

Para realizar el trabajo en objetos de una ruta de acceso del proveedor de Motor de base de datos , puede usar los métodos y las propiedades de SMO.

Ejemplos: Usar métodos y propiedades

En este ejemplo se usa la propiedad Schema de SMO para obtener una lista de las tablas del esquema Sales en AdventureWorks2022:

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

En este ejemplo se usa el método Script de SMO para generar un script que contiene las instrucciones CREATE VIEW que se deben tener para volver a crear las vistas en 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 }  

En este ejemplo se utiliza el método Create de SMO para crear una base de datos y, a continuación, se usa la propiedad State para mostrar si la base de datos existe:

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  

Consulte también