Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何处理SQL Server中插入或更新的多行_Sql Server 2008_Triggers_Insert Update - Fatal编程技术网

Sql server 2008 如何处理SQL Server中插入或更新的多行

Sql server 2008 如何处理SQL Server中插入或更新的多行,sql-server-2008,triggers,insert-update,Sql Server 2008,Triggers,Insert Update,我的触发器可以处理一条记录INSERT/UPDATE。现在我需要处理多行记录INSERT/UPDATE 有人可以帮我。如何解决这个问题 代码: 如果必须从触发器执行proc,则需要执行游标。如果可以将proc逻辑合并到触发器中,性能会更好。请注意,由于第一个SELECT中的FROM子句没有指定联接条件,因此将在inserted和deleted之间获得交叉联接。如果两个表中都有多条记录,则会得到一些外观奇怪、不正确的结果。StoredProcedure1的作用是什么?您是否可以将其合并到触发器中,

我的触发器可以处理一条记录INSERT/UPDATE。现在我需要处理多行记录INSERT/UPDATE

有人可以帮我。如何解决这个问题

代码:


如果必须从触发器执行proc,则需要执行游标。如果可以将proc逻辑合并到触发器中,性能会更好。请注意,由于第一个SELECT中的FROM子句没有指定联接条件,因此将在inserted和deleted之间获得交叉联接。如果两个表中都有多条记录,则会得到一些外观奇怪、不正确的结果。StoredProcedure1的作用是什么?您是否可以将其合并到触发器中,或使其处理多个@recordID值?不管怎样,@recordID的价值从何而来?@Ann L.,StoredProcedure1向客户发送电子邮件
CREATE TRIGGER Notifications ON CUSTOMER
FOR INSERT,UPDATE
AS
BEGIN
    DECLARE @oldname varchar(20)
    DECLARE @newname varchar(20)
    DECLARE @recordId INT
    IF EXISTS (SELECT 1 FROM deleted)
    BEGIN
        Select @oldname = customerName.o,@newname = customerName.o FROM inserted n,deleted o
        PRINT @newname
        PRINT @oldname
        IF @newname != @oldname
        BEGIN
            EXEC StoredProcedure1 @recordId
        END
        --Here I can implemnent my own logic
    END
    ELSE
    BEGIN
        Select @newname = customerName.o FROM inserted
        PRINT @newname
            EXEC StoredProcedure1 @recordId
        -- Here I can implemnent my own logic
    END
END