Jeg stødte på en interessant "feature" i SQL Server forleden. Jeg havde en tilfældig tabel - lad os kalde den "AbbaAbba" (det rigtige navn er redaktionen bekendt). Jeg skrev følgende stykke T-SQL:
SELECT * FROM Abbaabba
Til min store forundring fik jeg fejlen "Invalid object name 'Abbaabba'". Et forsøg mere med 'AbbaAbba' virkede fint. Jeg bruger altid case insensitivity i mine collations, så hvor kom den fejl fra?
Det viser sig, at fejlen er et udslag af, at jeg bruger "Danish_Norwegian" collation. Hvis man skriver 'Abbaabba', vil SQL Server opfatte 'aa' som et 'å'. Hvis man skriver 'AbbaAbba' bliver 'aA' opfattet som to a'er, hvorimod 'Aa' og 'AA' opfattes som 'Å'. Benytter databasen f.eks. 'SQL_Latin1_General' som collation, er der ingen problemer. Der er naturligvis heller ingen problemer, hvis man sætter [] omkring tabelnavnet.