我有一个触发器,我正在测试以更改CurrentFlag
数据库中AdventureWorksDW2014
列中的值。
如果CurrentFlag
的值为0或1,并且执行以下任何查询,则此触发器可以允许我执行更新查询:
UPDATE DIMEMPLOYEES
SET CURRENTFLAG = 0
WHERE EMPLOYEEKEY = 1
UPDATE DIMEMPLOYEES
SET CURRENTFLAG = 1
WHERE EMPLOYEEKEY = 1
因此,如果同时满足两个条件,则控制台上应显示一条消息,内容如下:PRINT 'VALUE UPDATED'
,因此,如果不满足这些条件,则该消息应相同:
PRINT 'VALUE ERROR CANNOT BE UPDATED, IS NOT WITHIN THE PARAMETERS ALLOWED'
我有一个执行类似操作的触发器,但是我无法尝试对其进行调整。这是代码:
CREATE TRIGGER NOUPDATE
ON DIMEMPLOYEE
FOR UPDATE
AS
IF UPDATE(CURRENTFLAG)
BEGIN
UPDATE DimEmployee
SET CurrentFlag = H.CURRENTFLAG
FROM DimEmployee J
INNER JOIN inserted H ON J.CurrentFlag = H.CurrentFlag
WHERE H.CurrentFlag <= 1
RAISERROR('VALUE UPDATED.', 10, 1)
END
BEGIN
UPDATE DimEmployee
SET CurrentFlag = H. CURRENTFLAG
FROM DimEmployee J
INNER JOIN inserted H ON J.CurrentFlag = H.CurrentFlag
WHERE H.CurrentFlag > 1
RAISERROR('VALUE ERROR CANNOT BE UPDATED, IS NOT WITHIN THE PARAMETERS ALLOWED', 10, 1)
END
GO