Der T-SQL-Linter

Während des Tippens prüft NovaSql die Abfrage und unterstreicht Stellen, die gefährlich oder langsam sind, noch bevor F5 gedrückt wird. Bewegt man die Maus über eine Unterstreichung, erscheint die Erklärung.

Die Regeln

Schwere Regel Warum
Fehler Syntaxfehler Die Abfrage lässt sich nicht übersetzen. Die Meldung kommt direkt vom SQL-Server-Parser.
Fehler DELETE ohne WHERE löscht die gesamte Tabelle
Fehler UPDATE ohne WHERE ändert alle Zeilen
Warnung SELECT * liefert mehr Spalten als nötig und bricht, wenn sich die Tabelle ändert. Spalten besser explizit auflisten.
Warnung Funktion auf einer Spalte z. B. WHERE YEAR(Datum) = 2026. Das ist nicht SARG-fähig: SQL Server kann keinen Index-Seek machen. Besser: WHERE Datum >= '2026-01-01' AND Datum < '2027-01-01'.
Warnung LIKE mit führender Wildcard LIKE '%meier' kann keinen Index nutzen und liest alle Zeilen.
Info NOLOCK / READUNCOMMITTED kann unvollständige oder doppelte Zeilen liefern

Fehler sind rot, Warnungen gelb, Hinweise blau unterstrichen.

Gut zu wissen

  • Der Linter versteht GO. Die Zeilennummern stimmen auch in langen Skripten.
  • Er kennt die Datenbank nicht. Ob eine Tabelle oder Spalte existiert, prüft er nicht; das meldet erst SQL Server beim Ausführen.
  • Eine Warnung ist ein Hinweis. SELECT * in einer schnellen Ad-hoc-Abfrage ist in Ordnung; in einer View oder Prozedur lohnt sich die Korrektur.