【问题标题】:sql server trigger referencing last rowsql server 触发器引用最后一行
【发布时间】:2010-12-01 11:37:13
【问题描述】:

我想在 SQL Server 中编写一个触发器,以便在将一行插入table1 时将两行插入table2。我想使用来自table1 的列值。

所以我的触发器看起来像这样

create trigger triggername on table1
as
begin
insert into
insert into
end

如何从最后插入的行(触发触发器的行插入)中获取任何列的值。 IE。相当于 oracle 中的“引用行”

【问题讨论】:

  • 如果您发布代码或 XML,在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮 (101 010) 以很好地格式化和语法高亮!

标签: sql sql-server database triggers


【解决方案1】:

SQL Server 中的触发器按语句而不是按行触发。您可以使用两个伪表inserteddeleted(对于insert 触发器,唯一感兴趣的是inserted

CREATE TRIGGER YourTrigger ON Table1
FOR INSERT
AS
INSERT INTO Table2 
SELECT * from inserted /*This will contain multiple rows if it is a multi-row insert*/

【讨论】:

    【解决方案2】:

    嗨 我自己有解决方案。我错过了别名

    从插入中选择@patient_no=fldL1BasCode

    应该是

    从插入的 i 中选择 @patient_no=i.fldL1BasCode

    【讨论】:

    • 很高兴提供更新,但请尝试将您的更新写为对您的问题的编辑,或者作为对您收到的回复的评论...
    猜你喜欢
    • 2012-11-13
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 2014-10-23
    • 1970-01-01
    相关资源
    最近更新 更多