在Visual Studio 2010中更新触发器
我在Visual Studio 2010中遇到了SQL触发器的问题。我有2个表格,我想用另一个表格进行操作。在Visual Studio 2010中更新触发器
下面的代码:
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
我喜欢这样的工作:
- 我在员工表上0
- 工资设定薪水NewSalary表改变到0
我得到的错误是
“多部分标识符‘NewSalary.ID’无法绑定”
我认为不存在“内部连接”,但我不知道如何使用它
尝试将ON Employees
更改为ON NewSalary
。
由于未引用NewSalary表,因此无法找到NewSalary.ID。
当我在使用SQL问题,我通常讲出来比较逻辑
老:
每次更新的员工,员工更新并设置工资= 0,其中NewSalary.ID = employees.ID后。
新:
每次更新到NewSalary后,更新员工并设置salary = 0,其中NewSalary.ID = employees.ID。
看到区别?
员工是触发器所在的表格,而不是需要连接的表格。至少我是这样读的。 –
请注意提问者希望触发器工作。最初的行动在NewSalary表上。至于NewSalary表上的更新结果 - Employees表 – mattbuell
还有其他情况应该发生。你说得对。除了这两个地方都有薪水记录的糟糕设计外。有些东西关闭了。 –
你是正确的,你需要一个连接,但你也需要使用“hidden”* inserted *表,它将包含进入employees表的新记录的记录ID。 –