3

SQL Server 2008R2 でプロシージャを作成しようとしていますが、このエラーが表示されます

equal to 操作で、"Latin1_General_CI_AI" と "SQL_Latin1_General_CP1_CI_AS" の間の照合の競合を解決できません。

私が作成した手順は、

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    

異なる照合順序でテーブルを照合しようとしましたが、うまくいきませんでした。どうすればこれを解決できますか。

4

5 に答える 5

10

おそらくこれが役立つかもしれません。このように where 条件を変更してください

Where A.QuestionId COLLATE DATABASE_DEFAULT = B.QuestionId  COLLATE DATABASE_DEFAULT
于 2013-10-21T06:54:20.193 に答える
1

これを使用してみてください。ここで、fieldname COLLATE DATABASE_DEFAULT = secondfieldname COLLATE DATABASE_DEFAULT

これは機能しています

于 2015-06-25T11:43:32.363 に答える
0

これを克服するには、以下のコードを使用します。

SELECT NAME
FROM sys.objects
WHERE NAME COLLATE DATABASE_DEFAULT NOT IN (SELECT TYPE  
FROM sys.objects)
于 2019-02-12T12:58:42.523 に答える