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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de