SQL触发器更新后,用值更新字段
本文关键字:更新 字段 触发器 SQL | 更新日期: 2023-09-27 18:25:26
我正在尝试编写一个在执行更新后运行的触发器。我希望触发器更新被更新的最后一行,并用字符串"填充名为ACTION_TYPE的字段;"更改";。
表结构
USE BillingUI;
CREATE TABLE tbl8_update_transactions
(
TID INT IDENTITY PRIMARY KEY,
TABLE_NUMBER nchar(2) NOT NULL,
HOLIDAY_DATE nchar(8) NOT NULL,
FIELD_DESCRIPTION nVARchar(43) NULL,
ACTION_TYPE nchar(6) NULL,
HID int,
FOREIGN KEY (HID) REFERENCES HOLIDAY_DATE_TABLE (HID) ON DELETE CASCADE
);
触发
CREATE TRIGGER tbl8_ins
ON tbl8_update_transactions
AFTER UPDATE
AS
BEGIN
UPDATE tbl8_update_transactions
SET ACTION_TYPE = "change"
WHERE TID = inserted.TID;
END
我得到以下错误:
无效列名";改变"。-我不知道为什么它认为更改是一个列名
多部分标识符";插入。TID";无法绑定。-我不确定这一行的语法,试图对刚刚更新的行执行更新。
From子句中"change"和引用INSERTED周围的引号使用单引号。
UPDATE tbl8_update_transactions
SET ACTION_TYPE = 'change'
FROM inserted
WHERE tbl8_update_transactions.TID = inserted.TID;
您需要使用单引号。
SET ACTION_TYPE = 'change'
SQL Server中的值不能使用双引号字符。