我已经创建了存储过程,如下面的代码行
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
执行此存储过程时抛出错误消息
无法解决之间的排序规则冲突 &#34; SQL_Latin1_General_CP1_CI_AS&#34;和Latin1_General_CI_AI&#34;在平等 操作。
答案 0 :(得分:1)
您的排序规则应该类似,只需更改表格中比其他数据库表格“更不正常”的排序规则
select *
from table1
join table2 on (table1.field collate SQL_Latin1_General_CP1_CI_AS = table2.field)
作为一个例子。我的猜测是你的tempDb与你的SP所在的DB有不同的校对,这就是你得到这个问题的原因 - 只是一个猜测。
以下是与您的问题相关的博文:http://blog.sqlauthority.com/2007/06/11/sql-server-cannot-resolve-collation-conflict-for-equal-to-operation/
基本上你的一个校对声明“重音不敏感”(AI),而另一个声明“重音敏感”(AS) - 试图比较不同校对之间的相等性,比如这个,你可能会看到为什么错误会抛出而没有使整理相似。