2012-12-09 100 views
30

我正在使用Microsoft SQL Server Management Studio。我有兩個數據庫,一個是系統數據庫,它有主數據庫,另一個是我的數據庫,名稱爲CCTNS_CAS_DE_DB。當我試圖通過使用CCTNS_CAS_DE_DB數據庫的工具生成報告時。排序錯誤

我收到以下錯誤:

Cannot resolve the collation conflict between "Latin1_General_CI_AI" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation

我通過SQL Server去檢查過了主數據庫的特性它顯示歸類爲Latin1_General_CI_AI,但是當我去CCTNS_CAS_DE_DB數據庫的特性它顯示整理爲SQL_Latin1_General_CP1_CI_AS

我在網上搜索了錯誤,但大部分解決方案都告訴如何更改特定表的排序規則,但我沒有遇到任何將我的數據庫整理爲Latin1_General_CI_AI的查詢。

ALTER DATABASE CCTNS_CAS_DE_DB COLLATE Latin1_General_CI_AI 

當我跑在我的SQL Server此查詢它扔了以下錯誤: - - :

Msg 5030, Level 16, State 2, Line 1
The database could not be exclusively locked to perform the operation.
Msg 5072, Level 16, State 1, Line 1
ALTER DATABASE failed. The default collation of database 'CCTNS_CAS_DE_DB' cannot be set to Latin1_General_CI_AI.

我知道這個問題已經

我碰到一個查詢是來了張貼在這裏,但這是在不同的情況下,我認爲。

回答

16

這裏是最大的暗示你的問題:

Msg 5030, Level 16, State 2, Line 1 The database could not be exclusively locked to perform the operation.

你需要做你運行ALTER DATABASE語句前將數據庫設置爲單用戶模式,然後將其設置回多用戶模式當它完成時。這將鎖定數據庫並僅將它提供給當前連接,這將允許您成功運行ALTER DATABASE ... COLLATE語句。

你可以use SQL Server Management Studio or T-SQL commands來做到這一點。

+0

我執行下面的查詢(ALTER DATABASE CCTNS_CAS_DE_DB COLLATE Latin1_General_CI_AI; GO),並能到我的分貝CCTNS_CAS_DE_DB的整理從SQL_Latin1_General_CP1_CI_AS改變Latin1_General_CI_AI但在生成報告時,它會顯示相同的錯誤,即無法解決等於操作中「Latin1_General_CI_AI」和「SQL_Latin1_General_CP1_CI_AS」之間的歸類衝突。 – Nitin

+0

很好的答案。謝謝 – Behzad

80

需要先將其設置爲SINGLE_USER。

ALTER DATABASE [database] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 

GO 

ALTER DATABASE [database] COLLATE SQL_1xCompat_CP850_CI_AS; 

GO 

ALTER DATABASE [database] SET MULTI_USER; 

GO 
+0

完美地工作。謝謝! – JwJosefy

+2

感謝您不要以爲我知道設置單用戶操作的SQL! –

+0

謝謝@RAY。偉大的工作... –

-1

工作非常謝謝你很多

ALTER DATABASE [database] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 

GO 

ALTER DATABASE [database] COLLATE SQL_1xCompat_CP850_CI_AS; 

GO 

ALTER DATABASE [database] SET MULTI_USER; 

GO 
+2

這是[RAY的答案](https://stackoverflow.com/a/17377732/243373)的完全重複。請不要重複現有的答案和/或把答謝的答案。相反,只要你有足夠的聲望,就可以得到最能幫助你的答案。 –