2017-04-01 77 views
1

當我點擊右鍵我的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

回答

1

試試下面的語法:

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

1

你的兩個表使用不同的排序規則。你可以告訴你的查詢中使用一個特定的排序是這樣的:

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 –

相關問題