我在 Visual Studio 2010 中的 SQL 触发器有问题。我有 2 个表,我想对另一个表进行操作。
代码如下:
ALTER TRIGGER update_costs
ON employees
AFTER UPDATE
AS
BEGIN
UPDATE employees
SET salary = 0
WHERE NewSalary.ID=employees.ID
PRINT 'Salary is now set on 0'
END
我希望它像那样工作:
- 我在 NewSalary 表中将薪水设置为 0
- employees 表中的薪水更改为 0
我得到的错误是
"multi-part identifier "NewSalary.ID" could not be bound"
我假设没有“内部连接”,但我不知道如何使用它
最佳答案
尝试将 ON Employees
更改为 ON NewSalary
。
找不到 NewSalary.ID,因为未引用 NewSalary 表。
当我遇到 SQL 问题时,我通常会把它们说出来以比较逻辑
旧的:
每次更新 Employees 后,更新 employees 并设置 salary = 0 where NewSalary.ID = employees.ID。
新:
每次更新 NewSalary 后,更新 employees 并设置 salary = 0 where NewSalary.ID = employees.ID。
看出区别了吗?
关于mysql - 在 Visual Studio 2010 中更新触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44568077/