Sei sulla pagina 1di 1

Create Table Historia(

id int Identity,
fecha datetime Default GetDate(),
usuario nvarchar(50) Default Suser_Sname(),
pc nvarchar(50) Default Host_Name(),
tabla nvarchar(50),
toper char(1),
valor_anterior nvarchar(300),
nuevo_valor nvarchar(300)
)Create Trigger Trig_Produts_Anadir
On Products
For Insert
As
Declare @nuevo_valor nvarchar(300)
Select @nuevo_valor='ProductId='+(Select
ProductName From inserted)
Insert Into Historia(tabla,toper,nuevo_valor) Values
('Products','I',@nuevo_valor)
Create Trigger Trig_Produts_Borrar
On Products
For Delete
As
Declare @ValorAnterior nvarchar(300)
Select @ValorAnterior='ProductId='+(Select
ProductName From deleted)
Insert Into Historia(tabla,toper,valor_anterior) Values
('Products','D',@ValorAnterior)
CREATE TABLE HISTORIA
(
ID INT IDENTITY,
FECHA DATATIME DEFULT GETDATE(),
PC VARCHAR(40) DEFAULT HOSTNAME(),
USUARIO VARCHAR(40) DEFAULT USERNAME(),
TABLE VARCHAR(40),
TIPO_PER CHAR(1),
VALOR_ANTIGUO VRCHAR(300),
NUEVO_VALOR VRCHAR(300)
)
CREATE TRIGGER Des_Products_Update
ON Products
FOR UPDATE
AS
DECLARE @VALORANT VARCHAR(300),@NUEVOVAL
VARCHAR(300)
SET @VALORANT=''
SET @NUEVOVAL=''
IF UPDATE(ProductName)
BEGIN
SET @VALORANT=@VALORANT+'ProductName='+
(SELECT ProductName From deleted)
SET @NUEVOVAL=@NUEVOVAL+'ProductName='+
(SELECT ProductName From inserted)
END
IF UPDATE(SupplierID)
BEGIN
SET @VALORANT=@VALORANT+'SupplierID='+
(SELECT CONVERT(VARCHAR(20),SupplierID) From deleted)
SET @NUEVOVAL=@NUEVOVAL+'SupplierID='+
(SELECT CONVERT(VARCHAR(20),SupplierID) From inserted)
END
IF UPDATE(CategoryID)
BEGIN
SET @VALORANT=@VALORANT+'CategoryID='+
(SELECT CONVERT(VARCHAR(20),CategoryID) From deleted)
SET @NUEVOVAL=@NUEVOVAL+'CategoryID='+
(SELECT CONVERT(VARCHAR(20),CategoryID) From inserted)
END
IF UPDATE(QuantityPerUnit)
BEGIN
SET @VALORANT=@VALORANT+'QuantityPerUnit='+
(SELECT CONVERT(VARCHAR(20),QuantityPerUnit) From
deleted)

SET @NUEVOVAL=@NUEVOVAL+'QuantityPerUnit='+
(SELECT CONVERT(VARCHAR(20),QuantityPerUnit) From
inserted)
END
IF UPDATE(UnitPrice)
BEGIN
SET @VALORANT=@VALORANT+'UnitPrice='+
(SELECT CONVERT(VARCHAR(20),UnitPrice) From deleted)
SET @NUEVOVAL=@NUEVOVAL+'UnitPrice='+
(SELECT CONVERT(VARCHAR(20),UnitPrice) From inserted)
END
BEGIN TRANSACTION
INSERT INTO
HISTORIA(TABLA,TIPOPER,VALOR_ANTERIOR,NUEVO_VALOR)
VALUES ('PRODUCTOS','U',@VALORANT,@NUEVOVAL)
IF @@ERROR<>0
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
/*trigger de insercion*/
CREATE TABLE HISTORIA2
(
ID INT IDENTITY,
FECHA DATE DEFAULT GETDATE(),
PC VARCHAR(40) DEFAULT HOST_NAME(),
USUARIO VARCHAR(40) DEFAULT USER_NAME(),
VALOR_INGRESADO VARCHAR(40)
)
create trigger tr_insertar_productos
on Products
for insert
as
BEGIN
declare @Valor varchar(40)
set @Valor = (Select top 1 (ProductName) FROM inserted
order by ProductName desc)
insert into Historia2(valor_ingresado) values (@Valor)
ENd
Insert into Products(ProductName, SupplierID,CategoryID)
Values ('Nose',1,1)
select * from historia2
CREATE TABLE HISTORIA3
(
ID INT IDENTITY,
FECHA DATE DEFAULT GETDATE(),
PC VARCHAR(40) DEFAULT HOST_NAME(),
USUARIO VARCHAR(40) DEFAULT USER_NAME(),
VALOR_ELIMINADO VARCHAR(40)
)
/*triger de eliminacion*/
CREATE TRIGGER TR_ELIMINAR_PRODUCTOS
ON Products
FOR DELETE
AS
BEGIN
DECLARE @Valor VARCHAR(40)
SET @Valor = (SELECT TOP 1 (ProductName) FROM deleted
ORDER BY ProductName DESC)
INSERT INTO HISTORIA3(VALOR_ELIMINADO) VALUES (@Valor)
END
DELETE FROM Products WHERE ProductID = (SELECT TOP 1
(ProductID) FROM Products ORDER BY ProductID DESC)
SELECT * FROM HISTORIA3

Potrebbero piacerti anche