簡體   English   中英

數據庫排序規則更改問題 (SQL Server 2008)

[英]Problem with database collation change (SQL Server 2008)

當我嘗試將現有數據庫(包括數據)的排序規則從ARABIC_CS_ASPERSIAN_100_CS_AS時,出現以下錯誤:

更改數據庫 'XXXX' 失敗。 (微軟.SqlServer.Smo)

執行 Transact-SQL 語句或批處理時發生異常。 (Microsoft.SqlServer.ConnectionInfo)

object 'ItemTables' 依賴於數據庫整理。 如果模式綁定 object 依賴於它,則無法更改數據庫排序規則。 刪除對數據庫排序規則的依賴性,然后重試該操作。
object 'CK_FilteredReportColumnFilters' 依賴於數據庫整理。 如果模式綁定 object 依賴於它,則無法更改數據庫排序規則。 刪除對數據庫排序規則的依賴性,然后重試該操作。
object 'CK_FilteredReportColumnFilters_1' 依賴於數據庫整理。 如果模式綁定 object 依賴於它,則無法更改數據庫排序規則。 刪除對數據庫排序規則的依賴性,然后重試該操作。
object 'CK_FilteredReportColumnFilters_2' 依賴於數據庫整理。 如果模式綁定 object 依賴於它,則無法更改數據庫排序規則。 刪除對數據庫排序規則的依賴性,然后重試該操作。
object 'CK_Reports' 依賴於數據庫整理。 如果模式綁定 object 依賴於它,則無法更改數據庫排序規則。 刪除對數據庫排序規則的依賴性,然后重試該操作。

更改數據庫失敗。 數據庫“XXXX”的默認排序規則不能設置為 Persian_100_CS_AS。 (微軟 SQL 服務器,錯誤:5075)

嘗試通過刪除這些數據庫對象來更正提到的錯誤會導致轉換過程中其他標題出現另一個錯誤。

任何的想法? 有沒有明確定義的解決方案來解決這個問題?

啊,這是 SQL Server 中最糟糕的問題之一:一旦創建了對象,就無法更改排序規則(對於表和數據庫都是如此......)。

您只能保存數據(不要使用 bcp 或備份實用程序,您需要將它們放在類似文件類型的 csv 中...),刪除數據庫,使用正確的排序規則重新創建並將數據重新導入到新數據庫...

希望這可以幫助。

我遇到了同樣的問題,所有對象都是函數 首先需要完全備份

腳本函數作為創建。 刪除這些函數然后運行

use master
go
ALTER DATABASE xxx SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
go
ALTER DATABASE xxx COLLATE yyyy
go
ALTER DATABASE xxx SET MULTI_USER
go

重新創建函數

我希望這有幫助。

只需使用 ex database_b 創建新數據庫。根據您的要求更改排序規則並從新源導出到目標。

要么

使用將覆蓋所有錯誤的 alt 整理工具。

--阿普

由於我的計算列,我有這個問題,所以我只是取消計算列,然后更改排序規則,然后將列更改為計算列。 它對我有用

我有同樣的問題。 在我的例子中,用這個查詢改變數據庫

use master
go
ALTER DATABASE xxx SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
go
ALTER DATABASE xxx COLLATE yyyy
go
ALTER DATABASE xxx SET MULTI_USER
go

沒有給我任何解決方案。 我最終遇到了錯誤,! 因此,我創建了一個具有正確排序規則的新數據庫,並將表從一個數據庫導入到另一個數據庫

只需在寫入字符串之前鍵入 N。

例如:

insert into table values (N'yourstring')

N = Unicode。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM