sql - 更新不同表中的单个列后的 SQL 触发器
问题描述
我正在创建一个 SQL 触发器,我需要在第一个表上更新记录后将它插入到另一个表中。
我得到了以下表格。
排位表:
仓表
到目前为止,我有以下无法编译的 SQL 查询。
CREATE TRIGGER dbo.MoveBinToQueue
ON dbo.Bins
AFTER UPDATE
AS
IF UPDATE(Status_StatusId)
BEGIN
INSERT INTO dbo.Queues
(
Prio,
Time
Bin_BinId,
Goal_GoalId
)
SELECT
20,
GETDATE(),
inserted.Status_StatusId,
inserted.Goal_GoalId
)
END
解决方案
你需要一个FROM
子句:
CREATE TRIGGER dbo.MoveBinToQueue
ON dbo.Bins
AFTER UPDATE
AS
BEGIN
IF UPDATE(Status_StatusId)
BEGIN
INSERT INTO dbo.Queues (Prio, Time, Bin_BinId, Goal_GoalId )
SELECT 20, GETDATE(), inserted.Status_StatusId, inserted.Goal_GoalId
FROM inserted;
END
END;
推荐阅读
- c# - C# 发射,类型值比较
- jenkins - Jenkins - 从 Artifactory 下载和计算的 MD5 校验和不同于原始
- swift - 使用 to 和 from 日期过滤数组
- sql - How to use dynamic table in nested for loop in oracle pl sql
- reactjs - Multiple React Apps in a single LoadBalancer on GKE
- javascript - How to call a function from a seperate file and controller in angular js ? is it possible?
- python - 为什么我不能卷曲并在我的 Jupyter 笔记本中播放 .wav 文件?
- java - Saving a Dictionary to .txt file in Scala
- python - 如何在不使用装饰器的情况下运行一次函数?
- javascript - 传单总是在点击事件后居中地图