hvordan fjernes collation konflikt i sql

Konflikten opstår feksnår man har forskellige tabeller fra forskellige databaser der skal samles med innnerjoins eller where statements.

Eksempel på en collate konflikt:

FROM [ENdatabase].[dbo].[ESTOCKCAT] esc
INNER JOIN [ENdatabase].[dbo].[ESTOCKTABLE] est ON est.itemnumber = esc.itemnumber
INNER JOIN #master_produkt_ids mpi ON mpi.itemnumber = est.itemnumber
WHERE est.DATASET = ‘lagerindhold’ AND esc.CATEGORY = @UnderKategoriID

Retunerer denne fejl melding:

Msg 468, Level 16, State 9, Line 42
Cannot resolve the collation conflict between “Danish_Norwegian_CI_AS” and “SQL_Danish_Pref_CP1_CI_AS” in the equal to operation.


Løsning på collate konflikt
:

FROM [ENdatabase].[dbo].[ESTOCKCAT] esc
INNER JOIN [ENdatebase].[dbo].[ESTOCKTABLE] est ON est.itemnumber = esc.itemnumber
INNER JOIN #master_produkt_ids mpi ON mpi.itemnumber = est.itemnumber collate database_default
WHERE est.DATASET = ‘lagerindhold’ AND esc.CATEGORY = @UnderKategoriID

#master_produkt_ids er en intern tabel i sql der indeholder nogle udvalgte data

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

%d bloggers like this: