Captura de filas eliminadas en SQL Server sin usar un disparador

Introducción :

Trabajar con disparadores puede ser difícil y llevar mucho tiempo a veces. Los disparadores pueden ralentizar la salida del servidor y ejercer una presión adicional sobre los recursos del sistema. Mucha gente usa activadores para realizar un seguimiento de todos los datos que se han eliminado de las tablas. En lugar de usar disparadores, podríamos usar otro proceso, como se ve en el ejemplo a continuación. Tenga en cuenta que el siguiente arreglo no sustituye al activador de eliminación. Por otro lado, si solo queremos registrar las filas eliminadas, podríamos usar eso en lugar del disparador.

Ejemplo:
Vamos a crear dos tablas –

CREATE TABLE GeekTab1 (Id1 INT, Name1 VARCHAR(100))
GO
CREATE TABLE GeekTab2 (Id2 INT, Name2 VARCHAR(100))
GO

Inserte datos de muestra en la tabla –

INSERT INTO GeekTab1 (Id1, Name1)
VALUES(1,'Khushi'), (2, 'Komal')
GO

Seleccionar datos de la tabla –

Select * from GeekTab1
GO

Producción –

Id1 Nombre1
1 Khushi
2 Komal

Eliminar de GeekTab1 e ​​insertar en GeekTab2 –

DELETE FROM GeekTab1
OUTPUT deleted.Id1, deleted.Name1
INTO GeekTab2
WHERE Id1 = 1
GO

Seleccione datos de ambas tablas:

SELECT * FROM GeekTab1;
GO
SELECT * FROM GeekTab2;
GO

Producción –

GeekTab1 

Id1 Nombre1
2 Komal

GeekTab2

Id2 Nombre2
1 Khushi

Conclusión:
la cláusula OUTPUT se usa en la declaración DELETE en el caso anterior y ha documentado la declaración que se elimina de GeekTab1.

Publicación traducida automáticamente

Artículo escrito por khushboogoyal499 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *