107: Das Spaltenpräfix '%1!' stimmt mit keinem in der Abfrage verwendeten Tabellen- oder Aliasnamen
Fehlermeldung:
Meldung 107, Ebene 16, Status 3, Zeile n
Das Spaltenpräfix '%1!' stimmt mit keinem in der Abfrage verwendeten Tabellen- oder Aliasnamen überein.
Ebene:
16.
Beschreibung:
SQL Server erlaubt die Angabe eines Tabellenalias für jede in einer Abfrage verwendete Tabelle. Üblicherweise sieht dies so aus:
SELECT < list >
FROM table AS hier_steht_der_alias_name
Trotzdem muß SQL Server in der Lage sein, Spaltennamen eindeutig aufzulösen. Verwendet man ein Spaltenpräfix für das SQL Server keine Tabelle oder keinen Tabellenalias findet, wird dieser Fehler ausgelöst.
Auswirkungen:
Das SQL Statement kann nicht geparst werden. Die weitere Ausführung wird abgebrochen.
Behebung:
Fehler der Ebene 16 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden.
Versionen:
Alle Versionen von SQL Server
Beispiel(e):
SELECT t1.OrderID
FROM Northwind..Orders
Anmerkungen:
Solange SQL Server in der Lage ist, Spaltennamen eindeutig aufzulösen, ist es gültig, Statements in der Form:
SELECT OrderID
FROM Northwind..Orders t1
zu schreiben. Obwohl der Tabellenalias t1 für Northwind..Orders vergeben wurde, wird dieser nicht in der SELECT Liste verwendet. Was nun aber in diesem einfache Beispiel funktioniert, kann bei komplexen Statements schnell scheitern. Entscheidet man sich für die Angabe eines Tabellenalias, so sollte man diesen auch konsequent auf alle Spalte der Tabelle in dem betreffenden Statement anwenden. Dadurch reduziert man nicht nur die Fehleranfälligkeit des Codes, sondern erhöht auch dessen Lesbarkeit und Wartbarkeit.