SQL不能在同样的决心“Arabic_100_CI_AI”和规则“SQL_Latin1_General_CP1_CI_AS”之间的排序规则冲突操作

问题描述:

当我点击右键我的DB,这个错误似乎 “SQL无法解析之间的排序规则冲突‘Arabic_100_CI_AI’和‘SQL_Latin1_General_CP1_CI_AS’在相同的操作。无法使用视图或函数“dbo.sysdac_instances”,因为绑定错误”的SQL不能在同样的决心“Arabic_100_CI_AI”和规则“SQL_Latin1_General_CP1_CI_AS”之间的排序规则冲突操作

enter image description here 我不知道更改排序规则

UPDATE 我想这个代码改变数据库的默认排序规则但是它给出了一个错误 enter image description here

UPDATE2 enter image description here 请帮我解决这个问题。

在此先感谢。

+0

此问题与's ysdac_instances'在这里解释http://dba.stackexchange.com/questions/133981 – devio

试试下面的语法:

SELECT * FROM Table1 PT 
    JOIN Table2 TA ON PT.Value COLLATE DATABASE_DEFAULT = TA.Value COLLATE DATABASE_DEFAULT 
+0

哪个表/存储过程应该执行此脚本? –

+0

@ MohamedNasr,详情请参考此URL https://www.mssqltips.com/sqlservertip/4395/understanding-the-collat​​e-databasedefault-clause-in-sql-server/ – Mansoor

你的两个表使用不同的排序规则。你可以告诉你的查询中使用一个特定的排序是这样的:

SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE SQL_Latin1_General_CP1_CI_AS 

或者,如果你喜欢使用数据库的默认排序:

SELECT * FROM A JOIN B ON A.Text = B.Text COLLATE DATABASE_DEFAULT 

更新

我认为你需要将数据库设置为单用户模式

use master 
ALTER DATABASE yourDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE  
ALTER DATABASE yourDB MODIFY NAME = [yourDBNew] 
ALTER DATABASE yourDBNew SET MULTI_USER 
+0

O.K.但我应该执行这个脚本的哪个表? –

+0

在您的查询中,您试图加入哪张表? – SMW

+0

这个错误出现,当我点击右键打开DB –