SQL-使用触发器中的主键从另一个表中选择字段



我的数据库中有两个表,一个是事务,另一个是交易史。后者本质上是一个审核表,触发器在插入,更新和删除交易中执行以捕获数据的屏幕截图。

我成功地检索了列匹配的交易表中存储的所有数据,但是难度是我试图使用外键从另一个表检索数据的地方。例如:

事务表中具有" TransActionType_transactionTypeid"字段,但是在审核表中,我们希望将其'名称'等效存储为" TransActionTypeName"。这需要从" TransactionTypes"表中填充,该表具有" TransActionTypeid"one_answers"名称"。

我正在努力编写一个查询来取回我们的意愿。我正在尝试类似于以下内容,但几乎没有成功:

SELECT @TransactionTypeName=Name
FROM TransactionTypes
WHERE inserted.TransactionType_TransactionTypeId=TransactionTypes.TransactionTypeId;

我假设这是一场句法噩梦。如果有人可以将我指向正确的方向,我将非常感激!

要获得一个名称,您应该做以下

select @TransactionTypeName = TT.Name
from inserted as i
    left outer join TransactionTypes as TT on TT.TransactionTypeId = i.TransactionType_TransactionTypeId

,但是您必须知道inserted表可以具有多个行,并且您仅获得一行的值。

相关内容

最新更新