0

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

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

事务表有一个字段“TransactionType_TransactionTypeId”,但在审计表中,我们希望将其“名称”存储为“TransactionTypeName”。这需要从“TransactionTypes”表中填充,该表具有“TransactionTypeId”和“Name”字段。

我正在努力编写一个查询来按照我们的意愿检索它。我正在尝试类似于以下内容但收效甚微:

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

我假设这是一个语法噩梦。如果有人能指出我正确的方向,我将非常感激!

4

1 回答 1

0

要获得名称,您应该执行以下操作

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

但是您必须知道该inserted表可以包含多行,并且您只能获得一行的价值。

于 2012-11-01T19:40:39.620 回答