CREATE TRIGGER dbo.YourTrigger
ON a
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF NOT UPDATE(name)
RETURN
UPDATE d
set upload = 1
FROM d
END
这是代码,但它不按我想要的方式工作。在这种情况下,当表(a)中的每个记录发生变化时,它会从表(d)更新我的上传字段。 我希望表(d)中的上传字段仅在表(a)中(名称字段)改变时进行更改。
答案 0 :(得分:1)
您可以使用触发器内的特殊Inserted
和Deleted
表来标识受影响的行。对于更新触发器,Deleted
包含行的“之前”版本,Inserted
包含行的“之后”版本。
CREATE TRIGGER dbo.YourTrigger
ON a
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF UPDATE(name)
UPDATE d
set upload = 1
FROM Inserted i
INNER JOIN Deleted de
ON i.EmpId= de.EmpId
INNER JOIN d
ON i.EmpId= d.RecId
WHERE i.name <> de.name
END
答案 1 :(得分:0)
为什么不这样做更清洁简单,因为如果名称更新,你只会更新......
CREATE TRIGGER dbo.YourTrigger
ON a
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF UPDATE(name)
BEGIN
UPDATE d
set upload = 1
FROM d
END
ELSE
BEGIN
--HERE GOES CODE
END
END