2015/07/09

SQL - Vaciar los registros de distintas tablas en una base de datos

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