Wir haben zwei Tabellen in unserer Anwendung, die beide eine ShowOrder
Spalte haben. Wir verwenden NHibernate in unserer Anwendung und verwenden HQL, verbinden wir diese zwei Tabellen geordnet nach ShowOrder
der ersten Tabelle bzw. der zweiten Tabelle.Alias wird ignoriert in OrderBy
Hier ist eine vereinfachte Version meiner Abfrage:
SELECT pr.Id as Id,pr.Title as Title, pr.ShowOrder as ShowOrder
FROM Process pr
INNER JOIN ProcessGroup prg ON pr.GroupId=prg.Id
ORDER BY prg.ShowOrder,pr.ShowOrder
Im Allgemeinen unsere Anwendung ohne Probleme arbeiten. Aber wir haben eine alte Anwendung und eine Konvertierungsroutine, um ihre Datenbank in unsere neue Anwendungsdatenbank zu konvertieren.
Immer, wenn wir eine alte Datenbank in unsere neue Datenbank konvertieren, tritt ein Fehler auf, wenn der SQL-Server die obige Abfrage ausführen möchte. Die Ausnahme, sagt:
Eine Spalte mehr als einmal in der Reihenfolge Liste
Wenn wir pr.ShowOrder
wählen angegeben wurde ohne Alias alles in Ordnung ist.
Es scheint, dass wenn ein Alias ShowOrder
in der Auswahlliste vorhanden ist, SQL Server Tabellenaliase ignoriert und davon ausgeht, dass pr.ShowOrder
und prg.ShowOrder
identisch sind.
Vielen Dank für Ihre Antwort. Ich habe den Kompatibilitätsgrad geändert und alles ist in Ordnung. – Beatles1692