Problème dans l'opération de jointure

J'ai créé la procédure stockée comme ci-dessous des lignes de code

ALTER PROCEDURE [dbo].[prJurisdictionFetchForAgentLicence] @AgentId int As Declare @individual varchar(20) = null; Create table #Split ( Jurisdiction nvarchar(max) ) Insert into #Split select Jurisdiction from tbLicence where AgentId =@AgentId; Select * from #Split; DECLARE @products VARCHAR(MAX)=''; SELECT @products += Isnull(Jurisdiction, '') + ',' FROM #Split; SELECT right(@products,len(@products)-1); Create table #TempJurisdiction ( JurisdictionX nvarchar(max) ); Insert into #TempJurisdiction SELECT Split.a.value('.', 'VARCHAR(MAX)') AS TempJurisdictiom FROM ( SELECT CAST ('<M>' + REPLACE(@products, ',', '</M><M>') + '</M>' AS XML) AS CVS ) AS A CROSS APPLY CVS.nodes ('/M') AS Split(a); Select * from #TempJurisdiction; SELECT L.Jurisdiction, L.JurisdictionX FROM tbJurisdiction L JOIN #TempJurisdiction P ON P.JurisdictionX = L.JurisdictionX 

Il lance un message d'erreur lors de l'exécution de cette procédure stockée

Impossible de résoudre le conflit de classment entre "SQL_Latin1_General_CP1_CI_AS" et Latin1_General_CI_AI "dans l'opération égale à.

Vos classments devraient être similaires, il suffit de changer le classment sur la table qui est "less normal" que vos autres tables db

 select * from table1 join table2 on (table1.field collate SQL_Latin1_General_CP1_CI_AS = table2.field) 

par exemple. Je suppose que votre tempDb a un classment différent de celui de votre SP et c'est pourquoi vous obtenez le problème – juste une supposition.

Voici un article de blog lié à votre problème: http://blog.sqlauthority.com/2007/06/11/sql-server-cannot-resolve-collation-conflict-for-equal-to-operation/

Fondamentalement, l'un de vos classments dit "insensible à l'accent" (AI) tandis que l'autre dit "accent sensible" (AS) – essayant de comparer l'égalité entre différents classments, vous pourriez probablement voir pourquoi l'erreur serait lancée sans faire les collations similaire.