Fehlermeldung "Cannot resolve collation conflict for equal to operation"

13/02/2009 - 12:22 von Christoph Schneegans | Report spam
Hallo allerseits!

In einer .NET-Anwendung erhàlt ein Kunde die Fehlermeldung "Cannot
resolve collation conflict for equal to operation", die ich mir nicht
erklàren kann. Zur Laufzeit der Anwendung wird zunàchst eine temporàre
Tabelle erstellt:

IF OBJECT_ID('tempdb..#images') IS NULL
CREATE TABLE tempdb..#images (
[Filename] NVARCHAR(239) NULL,
FolderToken CHAR(1) NOT NULL
);
ELSE
TRUNCATE TABLE tempdb..#images;

Spàter wird diese temporàre Tabelle dann mit einer anderen Tabelle
verbunden:

SELECT DISTINCT
i.[Filename],
i.FolderToken,
h.[Hash]
FROM
tempdb..#images AS i
LEFT JOIN
tblImageHashes AS h
ON
i.[Filename] = h.[Filename]
AND
i.FolderToken = h.FolderToken
AND
h.NetworkTargetID = @networkTargetID
ORDER BY
i.FolderToken,
i.[Filename];

Bei Ausführung dieser Anweisung liefert SQL Server die im o.g.
Fehlermeldung. Mir liegt die Ausgabe von

exec sp_helpdb;
exec sp_help 'tblImageHashes';

vom System des Kunden vor. Die beiden Text-Felder in der Tabelle
"tblImageHashes" verwenden "Latin1_General_CI_AS", ebenso wie die
Kollation der Datenbank, so daß die Felder der temporàren Tabelle dann
ebenfalls diese Kollation verwenden, richtig? Warum kommt es dann aber
zu einem "collation conflict"?

<http://schneegans.de/web/kanonische-adressen/> · Gute URLs
 

Lesen sie die antworten

#1 Tanja Dunker
13/02/2009 - 13:46 | Warnen spam
Hi Christoph!

vom System des Kunden vor. Die beiden Text-Felder in der Tabelle
"tblImageHashes" verwenden "Latin1_General_CI_AS", ebenso wie die
Kollation der Datenbank, so daß die Felder der temporàren Tabelle dann
ebenfalls diese Kollation verwenden, richtig? Warum kommt es dann aber
zu einem "collation conflict"?



Die temporàre Tabelle verwendet, sofern nicht anders definiert, die
Collation der tempdb-Datenbank.

Gruss

Tanja

Ähnliche fragen