触发器基于表的操作,对表进行增删改时添加触发器。以下sql语句:当对表进行修改操作时,触发器执行,修改表中Inventory的值。(if判断条件-触发器不再执行,必须有出口否则触发器无限执行)
--创建触发器 触发器名称
CREATE TRIGGER [dbo].[tr_Sduept_Inventory_Update]
ON [dbo].[Inventory]
AFTER UPDATE --修改操作的触发器
AS
BEGIN
--修改的触发器
--1 delete 2 insert
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @cInvCode NVARCHAR(60),@iInvSPrice FLOAT,@iInvNCost FLOAT;
--SELECT * FROM Deleted;
SELECT @cInvCode=cInvCode,@iInvSPrice=Inserted.iInvSPrice,@iInvNCost = Inserted.iInvNCost FROM Inserted;
IF (ISNULL(@iInvSPrice,0)<>ISNULL(@iInvNCost,0))
BEGIN
--修改表中字段值
UPDATE Inventory SET iInvSPrice=iInvNCost WHERE cInvCode=@cInvCode;
--将修改前的数据插入日志表中
INSERT INTO Sduept_Inventory_iInvPrice_Log(cInvCode,iInvSPrice,iInvNCost,CreatedOn,CreatedUser)
SELECT Inserted.cInvCode,In