SQL Trigger Update eines geänderten Datensatzes

Ein Updatetrigger nimmt eine Datenmanipulation vor. Hierbei muß immer äusserst vorsichtig gehandelt werden. In diesem Beispiel wird nach dem Speichern eines Datensatzes ein anderes Feld in diesem Datensatz noch verändert. Hierzu wird mit einer Hilfstabelle gearbeitet. In eine Tabelle Wartauftraege wird der Wert aus dem Datenfeld Anlagennr in das Datenfeld ExtAuftragsNr geschrieben wenn dieses den Wert Null hat.
Achtung: Bein nochmaligen Speichern des identischen Datensatzes wird es zu Problemen kommen.

ALTER TRIGGER [dbo].[trAnlagennummer] ON [dbo].[WartAuftraege] after update
AS
begin
declare @Anlagennr nvarchar(15)
declare @AuftragsNr nvarchar(15)
set @Anlagennr = (select top 1 Anlagennr from inserted)
select @Anlagennr=max(AnlagenNr),@AuftragsNr=max(AuftragsNr) from inserted

update WartAuftraege set extAuftragsNr = AnlagenNr where AuftragsNr = @AuftragsNr and extAuftragsNr is NULL
end