Code SQL Server TRIGGER

2 563 6
Code SQL Server TRIGGER

Đang tải... (xem toàn văn)

Thông tin tài liệu

CREATE TRIGGER KT_CAP_NHATON Production.ProductFOR UPDATEASBEGINDECLARE KT INT, ProMoIDThem INT, IDtam INTSELECT IDtam=ProductModelID FROM insertedIF(UPDATE(ProductModelID))BEGINSELECT KT=COUNT() FROM Production.ProductModel WHERE ProductModelID=IDtamIF(KT=0)BEGINPRINT MA KHONG TON TAIROLLBACK TRANENDELSEBEGINSELECT ProMoIDThem=COUNT() FROM Production.Product WHERE ProductModelID=IDtamUPDATE Production.ProductModel SET total_moid=ProMoIDThem WHERE ProductModelID=IDtamENDENDENDUPDATE Production.Product SET ProductModelID=1 WHERE ProductID=1UPDATE Production.Product SET ProductModelID=1 WHERE ProductID=2KIEM TRASELECT ProductID, ProductModelID FROM Production.ProductSELECT ProductModelID, total_moid FROM Production.ProductModel

****************TRIGGER************* /*Viết trigger kiểm tra việc cập nhật ProductModelID cho bảng Production.Product ProductModelID không tồn bảng Production.ProductModelID thông báo “mã không tồn tại” thực rollback Trường hợp mã tồn đếm có ProductModelID loại bảng Production.Product cập nhật vào cột total_moid vừa thêm.*/ THEM total_moid CHO BANG PRODUCTION.PRODUCT ALTER TABLE Production.ProductModel ADD total_moid INT KIEM TRA THEM COT total_moid SELECT * FROM Production.ProductModel -CREATE TRIGGER KT_CAP_NHAT ON [Production].[Product] FOR UPDATE AS BEGIN DECLARE @KT INT, @ProMoIDThem INT, @IDtam INT SELECT @IDtam=ProductModelID FROM inserted IF(UPDATE(ProductModelID)) BEGIN SELECT @KT=COUNT(*) FROM Production.ProductModel WHERE ProductModelID=@IDtam IF(@KT=0) BEGIN PRINT 'MA KHONG TON TAI' ROLLBACK TRAN END ELSE BEGIN SELECT @ProMoIDThem=COUNT(*) FROM Production.Product WHERE ProductModelID=@IDtam UPDATE Production.ProductModel SET total_moid=@ProMoIDThem WHERE ProductModelID=@IDtam END END END -UPDATE [Production].[Product] SET ProductModelID='1' WHERE ProductID='1' UPDATE [Production].[Product] SET ProductModelID='1' WHERE ProductID='2' KIEM TRA SELECT ProductID, ProductModelID FROM Production.Product SELECT ProductModelID, total_moid FROM Production.ProductModel Viết trigger đặt ten ghilog_trig để thao tác bảng Production.Culture thông tin ghi vào bảng trig_log TAO BANG TRIG_LOG CREATE TABLE TRIG_LOG ( ID INT IDENTITY(1,1) NOT NULL, ID_THAO_TAC VARCHAR(6), LOAI_THAO_TAC NVARCHAR(50), THOI_GIAN SMALLDATETIME ) TAO TRIGGER CREATE TRIGGER GHILOG_TRIG ON [Production].[Culture] FOR UPDATE, INSERT, DELETE AS BEGIN DECLARE @ID1 VARCHAR(6), @ID2 VARCHAR(6) SELECT @ID1=CultureID FROM inserted SELECT @ID2=CultureID FROM deleted IF(@ID1 IS NOT NULL AND @ID2 IS NOT NULL) BEGIN INSERT INTO [dbo].[TRIG_LOG] VALUES(@ID1,'UPDATE',GETDATE()) END ELSE IF(@ID1 IS NOT NULL) BEGIN INSERT INTO [dbo].[TRIG_LOG] VALUES(@ID1,'INSERT',GETDATE()) END ELSE IF(@ID2 IS NOT NULL) BEGIN INSERT INTO [dbo].[TRIG_LOG] VALUES(@ID2,'DELETE',GETDATE()) END END THUC THI UPDATE [Production].[Culture] SET Name='JKAD' WHERE CultureID='ACD' INSERT INTO [Production].[Culture] VALUES ('ACD','AB',GETDATE()) DELETE [Production].[Culture] WHERE CultureID='ABC' KIEM TRA SELECT * FROM Production.Culture ... NULL, ID_THAO_TAC VARCHAR(6), LOAI_THAO_TAC NVARCHAR(50), THOI_GIAN SMALLDATETIME ) TAO TRIGGER CREATE TRIGGER GHILOG_TRIG ON [Production].[Culture] FOR UPDATE, INSERT, DELETE AS BEGIN DECLARE

Ngày đăng: 06/12/2016, 11:42

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan