Auch dir einen guten Abend.
Zitat von
Ferber:
Vorab: Was ist die bessere (=schnellere) Formulierung ?
Select Top 1 Nummer from Nummern where Datum is null order by Nummer
oder
Select MAX(Nummer) from Nummern where Datum is null
Bei der ersten fehlt ein abschließendes DESC, sonst sind die beiden Anfragen nicht äquivalent. Ob die eine teurer als die andere ist, das hängt vom Anfrage-Optimierer ab. Ohne einen Blick in den Ausführungsplan traue ich mir da kein Urteil zu.
Zitat von
Ferber:
Warum warum liefert diese Formulierung einen Syntaxfehler ?
SET @Nummer = Select MAX(Nummer) as MaxNr FROM Nummern
Wie krieg ich die grösste Nummer in eine lokale Variable ?
So sollte es funktionieren:
SQL-Code:
declare @Nummer int
set @Nummer = (select max(Nummer) from Nummern)
Zitat von
Ferber:
Gibt es im
SQL sowas wie einen "Aktuellen Datensatz" ?
Intern sicher, nach außen hin ist
SQL eine Inkarnation des Relationen-Kalküls und da wird rein mengenorientiert gearbeitet.
Zitat von
Ferber:
Bei Triggern gibts ja DELETED und INSERTED.
Das sind Pseudo-Tabellen, keine Cursor. Nur bei Cursorn kontrollierst DU die Iteration.
Freundliche Grüße vom marabu