Tải bản đầy đủ (.docx) (3 trang)

Code SQL Procedure Trigger

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (30.78 KB, 3 trang )

--CAU 2a
/*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.*/
CREATE TRIGGER LOG_FILE
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(@ID2,'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
--KIEM TRA


SELECT * FROM dbo.TRIG_LOG
--*********************************************************
--Viết thủ tục thực hiện cập nhật ProductModelID cho bảng
Production.Product đặt
--tên updatemodelid_se. Thông số đầu vào là ProductonID và ProductModelID
CREATE PROC updatemodelid_se @ProductonID INT, @ProductModelID INT
AS
BEGIN
DECLARE @KT INT
SELECT @KT=ProductID FROM Production.Product
IF(@KT IS NOT NULL)
BEGIN
UPDATE Production.Product SET ProductModelID=@ProductModelID
WHERE ProductID=@ProductonID
END
ELSE
BEGIN
PRINT 'LOI, KHONG THUC HIEN DUOC'
END
END
--THUC THI


EXEC dbo.updatemodelid_se 1,3
--KIEM TRA
SELECT ProductID, ProductModelID
FROM Production.Product
WHERE ProductID='1'
--*************************************************************
--CAU 3

CREATE PROC CAP_NHAT @CultureID NCHAR(6), @NAME NVARCHAR(50)
AS
BEGIN
DECLARE @KT INT
SELECT @KT=COUNT(*) FROM Production.Culture
WHERE @CultureID=CultureID
IF(@KT > 0)
BEGIN
UPDATE Production.Culture SET Name=@NAME WHERE
CultureID=@CultureID
END
ELSE
BEGIN
INSERT INTO Production.Culture(CultureID,Name)
VALUES(@CultureID,@NAME)
END
END
--THUC THI
EXEC dbo.CAP_NHAT ABC, XKJABSD
--KIEM TRA
SELECT * FROM Production.Culture
----XOA
CREATE PROC XOA @CultureID NCHAR(6)
AS
BEGIN
DECLARE @KT INT
SELECT @KT=COUNT(*) FROM Production.Culture
WHERE @CultureID=CultureID
IF(@KT > 0)
BEGIN

DELETE Production.Culture WHERE CultureID=@CultureID
END
ELSE
BEGIN
PRINT 'KHONG TON TAI CAI NAY'
END
END
--THUC THI
EXEC dbo.XOA ABC
--KIEM TRA


SELECT * FROM Production.Culture



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×