Ne peut pas résoudre le conflit de classement entre “Latin1_General_CI_AI” et “SQL_Latin1_General_CP1_CI_AS”, dans l'égalité de l'opération
Je suis en train de créer une procédure SQL Server 2008R2, mais c'est montrer cette erreur
Ne peut pas résoudre le conflit de classement entre "Latin1_General_CI_AI"
et "SQL_Latin1_General_CP1_CI_AS", dans l'égalité de l'opération.
La procédure que j'ai créé est
CREATE Procedure Ps_Quiz_OnlineTest_QuestionsWithOptions_Get --'Ques1'
@Ques Varchar(8000)
As
Begin
Select
A.QuestionId,
A.QsnDesc,
A.CorrectOption,
B.OptionValue,
A.Marks,
(
Select QsnName
From Quiz_tblQsnsLimitMaster
Where QsnId = @Ques) QuesPaper,
(
Select Durationoftest
From Quiz_tblQsnsLimitMaster
Where QsnId = @Ques) QuesPaper
From
Quiz_tblQsnCreationMaster A,
Quiz_tblQsnCreationDetail B
Where
A.QuestionId = B.QuestionId
And A.QuestionId In (
Select QuestionIds
From FN_Question_Answers_Quiz(@Ques))
And B.QuestionId In (
Select QuestionIds
From FN_Question_Answers_Quiz(@Ques))
Order By
A.QuestionId,
B.OptionOrder
End
J'ai essayé de rassembler des tables avec des classements différents, mais il n'a pas travaillé.
Comment puis-je résoudre ce problème.
- Ajouter un
COLLATE
déclaration sur la comparaison de la table avec les autres classement. Si vous êtes en cours d'exécution à partir de SSMS, pouvez double-cliquer sur l'erreur dans la fenêtre de résultats, et il va vous montrer la ligne à laquelle elle s'est produite 🙂 - Il montre l'erreur à la ligne 6 qui est de Sélectionner A. QuestionId, A. QsnDesc, A. CorrectOption, B. OptionValue, A. Marques, Comment puis-je ajouter de COLLIGER de l'instruction ici?
- Ce type de données est Quiz_tblQsnsLimitMaster.QsnId?
- il sera sur les opérations de comparaison, quelque part. Sont
A.QuestionId
etB.QuestionId
de type de données varchar? - Tkalčec Krznarić, type de données est de type Varchar
- oui le type de données est de type varchar
- Essayez de rassembler deux de vos conditions
QsnId = @Ques COLLATE SQL_Latin1_General_CP1_CI_AS
- Ozren Tkalčec Krznarić Elle se montre toujours la même erreur
- Après la prise de Ozren les conseils, avez-vous double-cliquez sur le message d'erreur? Peut-être que vous avez fixé un problème, et l'erreur se produit de nouveau sur une ligne différente.
- Je l'ai fait, mais l'erreur persiste toujours dans la même ligne
Vous devez vous connecter pour publier un commentaire.
probablement cela peut vous aider, changer votre condition comme ceci
essayez de l'utiliser,
fieldname RASSEMBLER DATABASE_DEFAULT = secondfieldname RASSEMBLER DATABASE_DEFAULT
ce travail est
Puisque vous avez mentionné que QuestionID dans chaque tableau est de type varchar, c'est probablement la comparaison entre ceux-ci. Ainsi, à deviner, essayez de changer la ligne:
À la suivante:
Je préfère, si vous avez utilisé la bonne syntaxe de jointure pour vos tables, mais c'est pour un autre jour 😉
Suffit d'utiliser la syntaxe suivante lors de l'assemblage des tables avec des classements différents,
où A. QuestionId rassembler SQL_Latin1_Générales_CP1_CI__COMME = B. QuestionId rassembler SQL_Latin1_General1_General_CP1_ci_as
Pour surmonter cela, utilisez le code ci-dessous: