获取最后插入的行

4
我有一个触发器,它会往一个不同的表中插入一条记录,但我需要在触发器中获取到被插入的那条记录,该怎么做呢?没有标识字段,只有由插入表上的一个单独触发器生成的account_nbr。
我不知道是否有 SQL 语句可以检索刚刚插入的行。
数据库是 Sql Server 2008。

2
我猜你在谈论“Inserted”表 - 请注意:这个伪表在触发器中可以包含多行!(不仅仅是单行) - marc_s
1个回答

5

@Mitch - 是的,这是不好的实践,但触发器可以执行SELECT/OUTPUT等操作。 - Marc Gravell
从OUTPUT返回的列反映了INSERT、UPDATE或DELETE语句完成后但在触发器执行之前的数据:http://msdn.microsoft.com/en-us/library/ms177564.aspx 不确定我是否理解您对OUTPUT的预期用途?(现在已经很晚了,我的大脑有些迷糊!) - Mitch Wheat
@Mitch 我是指在触发器内部,从架构上来说这完全不好。实际上,我宁愿重新设计以避免这种需要,并且删除触发器,但如果没有更多的上下文,很难给出建议。 - Marc Gravell
有没有想法,mySQL是否有OUTPUT的等效物?我一直在寻找但无法找到。 - Will
抱歉,我不知道。这是SQL Server(2008?)的新功能,但我不使用MySQL。 - Marc Gravell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接