使用 Microsoft SQL Server,我正在编写一个用于更新表的 SQL 触发器,但我被卡住了。我对 SQL 不是很精通,所以它可能是我缺少的一些基本知识。
CREATE TRIGGER test
ON tableName
AFTER UPDATE
AS
BEGIN
DECLARE @variableA int
SELECT @variableA = variableA FROM DELETED
DECLARE @variableB int
SELECT @variableB = variableB FROM INSERTED;
f(@variableA <> @variableB )
BEGIN
//Do What I want
END
这可以正常工作,因为它在两个变量不同时执行操作。但是,我不想考虑 tableName 中的所有记录。
我编写了以下内容以仅获取我想要的条目。
WITH
table (variableID, variable)
AS
(
SELECT variableID, variable
FROM tableName
WHERE variable= 'value'
)
SELECT * FROM table
所以我想要的是将触发器仅应用于 SELECT 中找到的值。我会以正确的方式解决这个问题吗?