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