2013-03-19 9 views
5

ottengo questo errore quando ho eseguito una query di aggiornamento di Microsoft SQL ServerQual è la differenza tra SQL_Latin1_General_CP1_CI_AS e SQL_Latin1_General_CP1_CI_AI

non può risolvere il conflitto di confronto tra "SQL_Latin1_General_CP1_CI_AS" e "SQL_Latin1_General_CP1_CI_AI" nel uguale al funzionamento.

la query utilizza solo 2 tavoli, la tabella è aggiornamento e una tabella temporanea che fa join interno in, né tavolo hanno ho specificato la raccolta di e sono entrambi sullo stesso database che significa che dovrebbero avere la stessa collazione poiché dovrebbe essere quella predefinita del database quella destra

guardando le regole di confronto, l'unica differenza è l'ultimo carattere, tutto quello che ho capito dell'ultima parte è che CI sta per Case Insensitive. se dovessi fare una pugnalata al buio, penserei che AI ​​sia l'acronimo di Incremento Automatico ma non ho idea di cosa stia per AS

risposta

11

AI sta per insensibile all'aspetto (cioè determina se cafe = café). È possibile utilizzare la parola chiave collate per convertire uno (o entrambi) delle regole di confronto dei valori.
clicca il link per maggiori informazioni: http://msdn.microsoft.com/en-us/library/aa258237(v=sql.80).aspx

Esempio:

select * from r 
left outer join hr on hr.name = r.name COLLATE SQL_Latin1_General_CP850_CI_AI 
Problemi correlati