Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Trigger-"Übersetzung" (MySQL -> MSSQL)?

  Alt 18. Dez 2017, 13:54
Nur zur Info: so funktioniert es endlich wie gewünscht (ist jetzt so etwas wie AFTER UPDATE FOR EACH ROW).
SQL-Code:
CREATE TRIGGER Tabelle_KEEP_UID ON Tabelle
FOR UPDATE AS
  DECLARE trg_cur CURSOR FOR
    SELECT ID, uid FROM deleted;

  DECLARE @ID integer;
  DECLARE @uidval varchar(36);
  DECLARE @uidval2 varchar(36);

  OPEN trg_cur;

  FETCH NEXT FROM trg_cur INTO @ID, @uidval;
  WHILE @@FETCH_STATUS = 0
  begin
    SELECT @uidval2 = uid FROM inserted WHERE ID = @ID;
   if (@uidval is null)
      set @uidval = @uidval2;
    if (@uidval is null)
      set @uidval = lower(newid());
    update Tabelle set uid = @uidval where ID = @ID;

    FETCH NEXT FROM trg_cur INTO @ID, @uidval;
  end;

  CLOSE trg_cur;
  DEALLOCATE trg_cur;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat