En mi artículo anterior, discutí el proceso de cambiar el nombre de objetos en SQL Server y almacenar su información en una tabla con fines de registro y reversión. Hoy, demostraré el proceso de eliminación y cómo se puede utilizar para eliminar objetos de la base de datos.
Primero, echemos un vistazo a la tabla existente que almacena los objetos renombrados:
USE [Sandbox] GO SELECT * FROM dbo.DropObjects;
Ahora, creemos un procedimiento almacenado que eliminará los objetos 120 días después de haber sido renombrados:
USE [Sandbox] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[DropRenamedObjects] AS BEGIN -- El código para eliminar objetos va aquí END;
En el procedimiento almacenado, primero creamos tablas temporales para almacenar los resultados y el script final para eliminar los objetos. También creamos un cursor para iterar a través de las bases de datos y recopilar los objetos elegibles para eliminar.
Una vez que hemos recopilado los objetos, generamos el script para eliminarlos y lo ejecutamos. También registramos las operaciones de eliminación exitosas y cualquier falla en tablas separadas.
Finalmente, mostramos los resultados al usuario final, indicando qué objetos se eliminaron correctamente y cualquier falla que ocurrió.
Es importante tener en cuenta que el proceso de eliminación se puede personalizar para eliminar objetos antes o después de un número específico de días. Además, si hay algún problema al eliminar un objeto, como restricciones de clave externa, el proceso lo manejará y proporcionará una explicación para la falla.
Aquí hay un ejemplo de actualización de fechas de excepción para objetos:
UPDATE Sandbox.dbo.DropObject SET ExceptionDate = '2019-04-18' WHERE ObjectName = 'todrop._2019-04-18_Address';
Después de ejecutar el proceso de eliminación, podemos ver los resultados:
SELECT * FROM Sandbox.dbo.DropConfirmationSuccessful;
En la salida, podemos ver que la tabla ErrorLog se eliminó correctamente, pero la tabla Person no se eliminó debido a la restricción de clave externa.
En general, el proceso de eliminación en SQL Server proporciona una forma confiable y eficiente de eliminar objetos de la base de datos. Se puede programar como un trabajo o ejecutarse según sea necesario, según los requisitos de su entorno.
Espero que encuentre esta información útil para administrar sus bases de datos de SQL Server. ¡Estén atentos para más artículos sobre conceptos y mejores prácticas de SQL Server!