Skip to content

Stored procedures no documentados para iterar objetos en SQL Server

24/09/2012

  Aunque ejecutar código iterativo en una base de datos no representa la forma más eficiente de resolver un problema, muchas veces, sobre todo en cuestiones administrativas, tenemos la necesidad de iterar a través de objetos dentro de un servidor SQL Server. Para ello, existen dos stored procedures no documentados que nos permiten recorrer la colección de bases de datos de un servidor y la colección de tablas en una base de datos. Los procedimientos mencionados son sp_msforeachdb y sp_msforeachtable.

Les dejo un ejemplo de cada uno de ellos, verán que son muy simples de interpretar y adaptar a los requerimientos de cada caso:

sp_MSforeachdb ‘ALTER DATABASE ? SET RECOVERY SIMPLE WITH NO_WAIT’

que establece el modelo de recuperación simple para todas las bases de datos de un servidor.

EXECUTE sp_MSforeachtable ‘EXECUTE sp_spaceused [?];’

que nos muestra el espacio utilizado por cada tabla dentro de una base de datos.

Es importante notar que en cada iteración el símbolo de pregunta (?) indica el valor del elemento devuelto de la colección que se recorre.

Dejar un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: