首页 > 解决方案 > 使用单个查询(SQL Server)插入第一个表并更新第二个表中的记录

问题描述

我有两个表 table1 和 table2。

表 1 以 id 和 cardId 为列,表 2 以 cardId 和 UserId 为列

我想要一个查询,它将在 table1 中插入记录,然后根据 cardId 在 table2 中更新 UserId

标签: sqlsql-server

解决方案


当第一个表中发生插入时,您可以使用触发器来更新第二个表中的行。由于不清楚第二列中的 userId 必须设置为以下触发器使用 USER() 函数,因此可以根据需要进行更改。

数据设置

Insert into Table2 (cardId, userId) values (1,null)

扳机

Create trigger update_user after insert on Table1
For each row
Update Table2 set userId = USER() WHERE cardId = NEW.cardId

测试数据

Insert into Table1 (id, cardId) values(1,1)

在执行上面的测试数据插入时,userId列中的列Table2将被设置为函数userId返回的USER()


推荐阅读