Vamos a recorrer todas las tablas de nuestra base de datos y eliminar sus registros. Para ello, utilizaremos la información que nos brinda information_schema.tables. Es muy importante que limitemos de alguna forma las tablas que se van a vaciar, por ejemplo, si las tablas de nuestra aplicación empiezan por "TBL_" podríamos especificar una condición WHERE que filtre por aquellas tablas que empiezan con ese nombre.
USE DB_PRUEBA
DECLARE @SQL_DELETE VARCHAR(255),
@NOM_TABLA VARCHAR(255)
DECLARE CURSOR_DELETE CURSOR
FOR
SELECT 'DELETE FROM ' + TABLE_SCHEMA + '.' + TABLE_NAME,
TABLE_SCHEMA + '.' + TABLE_NAME
FROM information_schema.tables
WHERE TABLE_NAME NOT LIKE 'sysdiagrams'
ORDER BY
TABLE_NAME
OPEN CURSOR_DELETE FETCH NEXT FROM CURSOR_DELETE INTO @SQL_DELETE, @NOM_TABLA
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC (@SQL_DELETE)
FETCH NEXT FROM CURSOR_DELETE INTO @SQL_DELETE, @NOM_TABLA
END
CLOSE CURSOR_DELETE
DEALLOCATE CURSOR_DELETE
No hay comentarios.:
Publicar un comentario