Search

onze sponsors

microsoft_logo.gif


 

computrain_logo.JPG

Forum Login | Register
   Forum

 

Subject: Collation error 468
Prev Next
You are not authorized to post a reply.

Author Messages
devriesjpUser is Offline

Posts:0

20-11-2007 19:00:00 Alert 

Hallo,

Onlangs hebben wij een eerste installatie van Sql 2005 sp2 gedaan op een Windows 2003 server. Tijdens installatie kozen wij voor de Windows collation  (dit was default - de server was geinstalleerd als Duth - The netherlands).

De eerste applicatie database die wij nu hebben geinstalleerd is gemaakt met collation SQL_Latin1_General_CP1_CI_AS (de leverancier heeft hiervoor de scripts geleverd; wij hebben deze niet aangepast)

Als ik nu klik op Security - Logins, een user selecteer en klik op Securables, krijg ik een error 468: Cannot resolve collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS"in the UNION operation.

De foutmelding verschijnt eigenlijk alleen op de volgende manier.
Seleteer een user - klik achtereenvolgens op General - Server Roles - User Mapping - Securables en de error verschijnt.
Wat er er mis?

Extra informatie
- select serverproperty('Collation')
Latin1_General_CI_AS

- select name, collation_name, compatibility_level from sys.databases;
name                              collation_name                              compatibility_level
master                             Latin1_General_CI_AS                              90
tempdb                            Latin1_General_CI_AS                              90
model                              Latin1_General_CI_AS                               90
msdb                               Latin1_General_CI_AS                                90
ReportServer                   Latin1_General_CI_AS_KS_WS                   90
ReportServer                  TempDB  Latin1_General_CI_AS_KS_WS       90
ADB_ReportServer           Latin1_General_CI_AS_KS_WS                    90
ADB_ReportServerTempDB   Latin1_General_CI_AS_KS_WS                 90
ADB_Orga                              SQL_Latin1_General_CP1_CI_AS              90

Nu heb ik diverse zaken gelezen op het web over collation error 468 en dat het wellicht te maken heeft met de tempdb, maar eigenlijk weet ik het nog steeds niet. De system databases zijn gelijk aan de tempdb.

- Heb ik nu een probleem? De foutmelding komt alleen maar voor bij SSMS (voor zover ik weet)
- Moeten al mijn toekomstige database collation Latin1_General_CI_AS krijgen?
- En wat als er applicaties zijn die een afwijkende collation hebben? Moet ik dan een aparte instance maken?

Kortom. Als iemand enige licht kan schijnen op dit probleem, is het van harte welkom.
Bij voorbaat dank.

Jaap de Vries

 

Hugo KornelisUser is Offline

Posts:46

30-11-2007 11:09:42 Alert 
Beste Jaap,

Het is mogelijk om te werken met verschillende collations binnen één server (of instance), maar het vraagt wel extra inspanning. Objecten in tempdb worden standaard gemaakt met de default collation van tempdb, die tijdens de installatie gelijk is gemaakt aan de default collation van de instance. Objecten in je user database worden standaard gemaakt met de default collation van die database. Dit kan tot lastige gevolgen leiden als je een temp table of table variable gebruikt, omdat die in tempdb worden gemaakt en dus een andere collation zullen krijgen dan de objecten in je eigen database! Dit kun je overigens voorkomen door bij de CREATE TABLE voor de tijdelijke tabel of de DECLARE TABLE voor de table variable een expliciete COLLATION op te geven. Of je kan tijdens het werken met de strings de COLLATION clause toevoegen om het eventuele conflict te voorkomen c.q. op te lossen.

Jij krijgt de error echter tijdens het werken met een tool van Microsoft. Dat betekent dus dat de queries die dit tool gebruikt niet voldoende rekening houden met de mogelijkheid van verschillende collations binnen de instance. Dat kun je zelf niet oplossen; je zult het als bug moeten melden. Je schrijft dat je al op de laatste service pack zit; ga dat voor de zekerheid nog wel een keertje na. Google ook even goed of de fout wellicht al bekend is; mischien is er zelfs al een hotfix beschikbaar.

Zo niet, dan kan je de fout melden. Als je er echt last van hebt en haast wil met de oplossing, meldt de fout dan bij Microsfot support (http://support.microsoft.com/oas/default.aspx?gprid=2855). Je moet daar voor betalen, maar voor zover ik weet krijg je het geld terug als blijkt dat het inderdaad een nog niet bekende en gepubliceerde bug in het product is.
Heb je minder haast maar wil je de fout wel melden, dan kan dat via de conenct website: https://connect.microsoft.com/SQLServer/Feedback

Met vriendelijke groeten,

Hugo Kornelis (SQL Server MVP)
devriesjpUser is Offline

Posts:0

06-12-2007 18:19:17 Alert 

Bedankt voor de duidelijke info.

Wij hebben binnen ons bedrijf de mogelijkheid om calls aan te maken bij Microsoft.
Ik ben van plan dat dan maar ook te gaan doen.

Groeten,

Jaap

Gé BranderUser is Offline

Posts:1

24-06-2008 14:55:28 Alert 
@devriesjp:
Heb je dit nog aangemeld, en zo ja, is er een oplossing voor reeds?
You are not authorized to post a reply.
Forums > Forums > DBA > Collation error 468



ActiveForums 3.6
  
Copyright (c) 2012 PASS Nederland   Privacy Statement  Terms Of Use