當我點擊右鍵我的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」之間的排序規則衝突操作
UPDATE 我想這個代碼改變數據庫的默認排序規則但是它給出了一個錯誤
在此先感謝。
當我點擊右鍵我的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」之間的排序規則衝突操作
UPDATE 我想這個代碼改變數據庫的默認排序規則但是它給出了一個錯誤
在此先感謝。
試試下面的語法:
SELECT * FROM Table1 PT
JOIN Table2 TA ON PT.Value COLLATE DATABASE_DEFAULT = TA.Value COLLATE DATABASE_DEFAULT
哪個表/存儲過程應該執行此腳本? –
@ MohamedNasr,詳情請參考此URL https://www.mssqltips.com/sqlservertip/4395/understanding-the-collate-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
此問題與's ysdac_instances'在這裏解釋http://dba.stackexchange.com/questions/133981 – devio