jueves, abril 18, 2024

Como podemos limpiar todas las tablas de nuestra base de datos en un solo script

En algún monento vamos a necesitar limpiar todas nuestras tablas, y podrían existir muchos motivos, como migrar la aplicación donde otro cliente o borrar los datos de pruebas u otros casos, entonces para esto podríamos tener un SP que nos facilite el trabajo.

Importante: Mucho cuidado al usar este script, podrías perder datos importantes y que no quieras eliminar, para eso tendrías que agregarle algún filtro.

CREATE PROCEDURE ClearTables
as begin

declare @sql varchar(255)
declare @name varchar(30)

create table #names ( name varchar(30) )

insert into #names
select name from sysobjects (nolock)
where type = 'u'

set rowcount 1
while @@error = 0 begin
select @name = name from #names
delete from #names if @@rowcount < 1 break
select @sql = 'truncate table ' + @name
exec ( @sql )
end
set rowcount 0

return (0)

end
GO

Te lo recuerdo, mucho cuidado al usar este script. No digas que no estabas advertido.

Otra forma de poder ejecutar alguna acción en todas las tablas de nuestra base de datos es con la función no documentada de SQL sp_MSforeachtable, ver detalle.

Roy Rojas
Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub
Roy Rojas
Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub