1. Trang chủ
  2. » Công Nghệ Thông Tin

Code SQL Server TRIGGER

2 563 6

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 12,76 KB

Nội dung

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

Trang 1

/*Viết trigger kiểm tra việc cập nhật ProductModelID cho bảng

Production.Product

nếu ProductModelID không tồn tại trong bảng Production.ProductModelID thì thông báo “mã không tồn tại” và thực hiện rollback Trường hợp mã tồn tại thì đếm

có bao nhiêu ProductModelID cùng loại trên bảng Production.Product rồi cập nhật

vào cột total_moid vừa mới 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 để khi thao tác trên bảng

Production.Culture thông tin sẽ được ghi vào bảng trig_log

TAO BANG TRIG_LOG

CREATE TABLE TRIG_LOG

Trang 2

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

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

TỪ KHÓA LIÊN QUAN

w