martes, diciembre 3, 2024
Inicio SQL Server Procedimiento no documentado de MSSQL sp_MSforeachtable

Procedimiento no documentado de MSSQL sp_MSforeachtable

0

Este procedimiento nos evita tener que crear un cursor para recorrer todas nuestras tablas, y en una sola línea podemos hacer muchas cosas.

Antes de empezar a utilizar este procedimiento hay que tener mucho cuidado con las repercuciones que nos pueda ocacionar. Ya que aplica a TODAS las tablas de la base de datos.

Para utilizarlo debemos hacer algo como lo siguiente:

–Hace un select a todas las tablas
EXEC sp_MSforeachtable 'select * from ?'
–Cuenta todas los registros de las tablas
EXEC sp_MSforeachtable 'select count(*) from ?'
–Elimina todos los registros de las tablas
Cuidado con este ejemplo, vamos a perder todos los datos, (limpieza general)
EXEC sp_MSforeachtable 'truncate table ?'
–Retorna el nombre y creador de todas las tablas
EXEC sp_MSforeachtable @command1=»print '?'»

El signo ? representa el nombre de la tabla.

Otro ejemplo mas complejo podría ser:

–Creamos una tabla temporal
create table #rowcount (tablename varchar(128), rowcnt int)
–Inserta en la tabla temporal un select count(*)
exec sp_MSforeachtable
'insert into #rowcount select ''?'', count(*) from ?'
–Hacemos el select en la tabla temporal para ver el resultado
select top 5 * from #rowcount
order by tablename
–Eliminamos la tabla temporal
drop table #rowcount

Estos fueron solo ejemplos, pero bien podrías hacer muchas otras cosas dependiendo de lo que quieras hacer.

Artículo anterior Como usar Cookies en ASP.NET
Artículo siguiente Conectar PocketPC a un WebService
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, Flutter y DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. <a href="https://www.royrojas.com">royrojas.com</a> | <a href="https://www.dotnetcr.com">dotnetcr.com</a> | <a href="https://github.com/royrojas">GitHub</a>

Dejar respuesta

Please enter your comment!
Please enter your name here