Könnte in etwa so aussehen. Ist jetzt einfach nur ein kopierter Trigger, aber es sollte das Arbeiten mit Cursor recht gut erläutern.
SQL-Code:
CREATE TRIGGER trManualID ON [dbo].[Property]
FOR INSERT
AS
declare @ManualID int
declare @Conflicting int
declare @ID int
declare CR cursor for
select ID from Inserted
open CR
fetch next from CR into @ID
while @@fetch_status = 0 BEGIN
set @ManualID = (select ManualID from Inserted where ID = @ID)
if not(@ManualID is null) BEGIN
set @Conflicting = (select count(p.ID) as N from Inserted i left join Property p on p.ManualID=i.ManualID and p.ID <> @ID and p.ManualID = @ManualID)
if @Conflicting > 0 begin
update Property set ManualID = null where ID = @ID
end
end
fetch next from CR into @ID
end
close CR
deallocate CR