CREATE PROC updatemodelid_se ProductonID INT, ProductModelID INTASBEGINDECLARE KT INTSELECT KT=ProductID FROM Production.ProductIF(KT IS NOT NULL)BEGINUPDATE Production.Product SET ProductModelID=ProductModelID WHERE ProductID=ProductonIDENDELSEBEGINPRINT LOI, KHONG THUC HIEN DUOCENDENDTHUC THIEXEC dbo.updatemodelid_se 1,3KIEM TRASELECT ProductID, ProductModelID FROM Production.ProductWHERE ProductID=1
Trang 1CAU 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
Trang 2EXEC 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
Trang 3SELECT * FROM Production.Culture