Usando esta guía, aprenderá cómo usar el procedimiento almacenado SP_MSFOREACHDB (), cómo usarla y varios ejemplos de cómo usar el procedimiento.
Sys.SP_MSFOREACHDB ()
El SP_MSFOREACHDB () es un procedimiento almacenado indocumentado disponible en la base de datos maestro. Le permite recorrer todas las bases de datos en la instancia de SQL Server y ejecutar consultas SQL en las bases de datos especificadas.
En SQL Server Management Studio, puede ver este procedimiento navegando a la base de datos maestra -> Programabilidad -> Procedimientos almacenados -> Procedimientos almacenados del sistema.
Podemos expresar la sintaxis del procedimiento como se muestra:
Declarar @Command Varchar (255)Veamos ahora algunos ejemplos de uso del procedimiento.
Ejemplo 1-show los nombres de todas las bases de datos
Supongamos que desea obtener los nombres de todas las bases de datos en la instancia de SQL Server; Puede usar el procedimiento MSFOREACHDB () como se muestra en el ejemplo a continuación:
Declarar @Command Varchar (255)El conjunto anterior de consultas debe devolver los nombres de todas las bases de datos en la instancia. Una salida de ejemplo es como se muestra:
maestroEjemplo 2 - Mostrar tamaños de base de datos
Aunque hay varias formas de usar para obtener el tamaño de una base de datos en SQL Server, en este ejemplo, utilizaremos el procedimiento SP_Spaceused.
Considere el ejemplo que se muestra a continuación:
Declarar @Command Varchar (255)Usando un solo comando, podemos ver el tamaño de todas las bases de datos como se muestra en la salida de ejemplo a continuación:
Ejemplo 3 - Muestre todas las columnas en las bases de datos
Para ver las columnas en cada base de datos, puede ejecutar una consulta como se muestra en el fragmento de ejemplo a continuación:
Declarar @Command Varchar (255);La consulta anterior debe devolver las columnas en cada base de datos como se muestra:
Ejemplo 4: encoge todas las bases de datos
Puede encoger el tamaño de todas las bases de datos en el servidor utilizando el procedimiento MSFORECHDB como se muestra a continuación:
Declarar @Command Varchar (255);La consulta de ejemplo anterior intentará reducir el tamaño de todas las bases de datos en el servidor. Si tiene una colección integral de bases de datos, evite usar esta consulta, ya que puede llevar mucho tiempo y bloquear otros procesos para usar las bases de datos.
El ejemplo de salida es como se muestra:
Clausura
Clausura
Este tutorial le muestra cómo usar el procedimiento almacenado SP_MSFOREACHDB () para ejecutar consultas SQL en todas las bases de datos en la instancia de SQL Server.
Gracias por leer y estad atentos para más tutoriales de SQL Server.