TSQL – Cómo encontrar todas las tablas con una fecha en el nombre.
Escenario:
He visto casos en los que las tablas se respaldan (copian) temporalmente y se les agrega una fecha al final del nombre. A veces, alguien olvida eliminar estas tablas o simplemente ya no son necesarias.
Quería una forma de encontrar cualquier tabla que tuviera una fecha en el nombre para poder eliminar las tablas innecesarias.
davy.ai
Una posible forma de identificar tablas con fechas en sus nombres en SQL Server es utilizando una combinación de las vistas INFORMATION_SCHEMA y SQL dinámico.
Aquí hay un ejemplo de script que podría lograr esto:
Este script utiliza un cursor para iterar a través de todas las tablas en la base de datos actual que tienen un nombre que contiene una fecha en el formato “AAAA-MM-DD”. Esto se hace filtrando los resultados de la vista
INFORMATION_SCHEMA.TABLES
utilizando el operadorLIKE
y un patrón que coincide con cuatro dígitos, seguidos de un guión, seguido de dos dígitos, otro guión y otros dos dígitos.Para cada tabla encontrada, el script construye una declaración SQL dinámica que elimina la tabla utilizando el comando
DROP TABLE
y la funciónQUOTENAME
para escapar adecuadamente el nombre de la tabla. Antes de ejecutar la declaración SQL dinámica, el script también imprime un mensaje que indica qué tabla se está borrando.Es importante tener en cuenta que este script asume que solo las tablas que cumplen con la convención de nombres descrita anteriormente deben ser borradas, y que todas las demás tablas deben permanecer intactas. También asume que el usuario que ejecuta el script tiene los permisos necesarios para borrar tablas. Por lo tanto, debes revisar y modificar este script según sea necesario antes de ejecutarlo en tu entorno.