Tabelnamen ineens in hoofdletters i.p.v. mixed case op SQL server

Achtergrond

Vanaf release 22.0.617 is er een wijziging doorgevoerd in de SQL Server-driver om de compatibiliteit met niet-Nederlandse en niet-Engelse omgevingen te verbeteren:

Set SQL Server identifier casing to mixed, fixing issues with non-ASCII identifier characters.

Onderdeel van deze wijziging is dat namen van identifiers op een andere wijze tot stand komen. Standaard volgt Invantive SQL voor de namen van identifiers zoals tabellen de ANSI SQL-standaard waarbij namen - tenzij anders aangegeven - hoofdletters worden. Normaliter is dat voor queries op SQL Server geen probleem; bij verre de meeste databases hebben case-insensitive metadata waardoor SQL-statements blijven werken.

Echter, er is geen rekening mee gehouden dat Power BI op dit gebied gevoeliger is dan SQL Server zelf en de case-insensitivity niet overneemt. Het veranderen van casing of weglaten van niet-gebruikte velden veroorzaakt daardoor foutmeldingen.

Deze veranderde werkwijze is zichtbaar in het resultaat de volgende statements:

create or replace table SampleTable1
as
select * from dual@datadictionary

create or replace table sampletable2
as
select * from dual@datadictionary

create or replace table [SampleTable3]
as
select * from dual@datadictionary

met als resultaat:

image

Advies

Als het gewenst is om de casing te behouden zoals die in het create or replace table-statement staat, gelieve dan de tabelnaam tussen vierkante haken te plaatsen zoals in bovenstaand voorbeeld bij SampleTable3. Dit wordt dan behandeld conform SQL-standaard als een specifiek gewenste casing.

In het eerst genoemde statement wordt dit dan:

create or replace table [ProjectsIncremental]@mss
as
select *
from   ProjectsIncremental@eol