Wie schreibt man trigger für mehrere Zeile zu aktualisieren?

Ich geschrieben habe, einen update-trigger, der gut arbeitet, wenn ich das update nur eine Zeile, sondern gibt eine Fehlermeldung, wenn ich aktualisiert, mehrere Zeilen.

Fehler:

Msg 512, Ebene 16, Status 1, Prozedur Sale_OnUpdate, Zeile 14 Unterabfrage hat mehr als 1 Wert.
Dies ist nicht zulässig, wenn die Unterabfrage folgt =, !=, <, <= , >, >= oder wenn die Unterabfrage als Ausdruck verwendet.

Hier ist Trigger

ALTER  TRIGGER [dbo].[Sale_OnUpdate]    ON  [dbo].[Sale] 
   AFTER Update

AS 
Declare @ID as decimal
Declare @User as varchar(250)
Declare @Status as varchar(250)

set @ID = (Select ID from Inserted)
set @User = (Select UpdatedByUser from Inserted)
set @Status = Isnull((Select Status from Inserted),'')

BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

   INSERT INTO [dbo].[Log]
           (
           [RecordID]
           ,[Date]
           ,[Time]
           ,[UserName]
           ,[TableName]
           ,[Action]
           )
     VALUES
           (
           @ID
           ,GetDate()
           ,GetDate()
           ,@User
           ,'Sale'
           ,'Update,' + @Status
           )
END

Was ändern sollte ich tun, um es Arbeit für mehrere Zeilen.

Schreibe einen Kommentar