martes, 12 de mayo de 2009

Usos del stored procedure sp_MSforeachtable

Sql Server tiene un procedimiento almacenado no documentado llamado sp_MSforeachtable que nos permite pasarle un comando a todas las tablas que tenemos en una base de datos. En 8 common uses of undocumented Stored Procedure sp_MSforeachtable muestran una lista de 8 operaciones que podemos realizar de forma muy sencilla gracias a este procedimiento almacenado. Algunos de ellos:

Saber el tamaño utilizado por todas las tablas

USE NORTHWIND

EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"

Reconstruir todos los índices

USE YOURDBNAME
EXEC sp_MSforeachtable @command1="print '?' DBCC DBREINDEX ('?', ' ', 80)"

Desactivar todas las restricciones de todas las tablas

USE YOURDBNAME
EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"

Desactivar todos los triggers de todas las tablas

USE YOURDBNAME
EXEC sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'

No hay comentarios: