Sql server 2008 如何处理SQL Server中插入或更新的多行
我的触发器可以处理一条记录INSERT/UPDATE。现在我需要处理多行记录INSERT/UPDATE 有人可以帮我。如何解决这个问题 代码: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的作用是什么?您是否可以将其合并到触发器中,
如果必须从触发器执行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