web-dev-qa-db-ja.com

データベース照合変更の問題(SQL Server 2008)

既存のデータベース(データを含む)の照合順序をARABIC_CS_ASからPERSIAN_100_CS_ASに変更しようとすると、次のエラーが発生します。

データベース「XXXX」の変更に失敗しました。 (Microsoft.SqlServer.Smo)

Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.ConnectionInfo)

オブジェクト 'ItemTables'はデータベースの照合に依存しています。スキーマバインドオブジェクトが依存している場合、データベースの照合順序は変更できません。データベース照合の依存関係を削除してから、操作を再試行してください。
オブジェクト「CK_FilteredReportColumnFilters」は、データベースの照合に依存しています。スキーマバインドオブジェクトが依存している場合、データベースの照合順序は変更できません。データベース照合の依存関係を削除してから、操作を再試行してください。
オブジェクト「CK_FilteredReportColumnFilters_1」はデータベースの照合に依存しています。スキーマバインドオブジェクトが依存している場合、データベースの照合順序は変更できません。データベース照合の依存関係を削除してから、操作を再試行してください。
オブジェクト 'CK_FilteredReportColumnFilters_2'はデータベースの照合に依存しています。スキーマバインドオブジェクトが依存している場合、データベースの照合順序は変更できません。データベース照合の依存関係を削除してから、操作を再試行してください。
オブジェクト「CK_Reports」はデータベースの照合に依存しています。スキーマバインドオブジェクトが依存している場合、データベースの照合順序は変更できません。データベース照合の依存関係を削除してから、操作を再試行してください。

ALTER DATABASEが失敗しました。データベース「XXXX」のデフォルトの照合は、Persian_100_CS_ASに設定できません。 (Microsoft SQL Server、エラー:5075)

これらのデータベースオブジェクトを削除することによって言及されたエラーを修正しようとすると、変換プロセスの他のタイトルで別のエラーが発生します。

何か案が ?この問題を解決する明確に定義された解決策はありますか?

16
Farzin Zaker

ああ、これはSQL Serverの最悪の問題の1つです。オブジェクトが作成されると、照合順序を変更できなくなります(これは、テーブルとデータベースの両方に当てはまります...)。

データの保存(bcpまたはバックアップユーティリティは使用せず、類似のファイルタイプのcsvに配置する必要があります...)、データベースの削除、正しい照合での再作成、データの再インポートのみが可能です。新しいデータベース...

お役に立てれば。

16

私は同じ問題を抱えており、すべてのオブジェクトが機能していました最初に完全バックアップを取ります

スクリプトはcreateとして機能します。これらの関数を削除してから実行

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

関数を再作成する

これがお役に立てば幸いです。

2
Haitham Othman

Ex database_b。で新しいデータベースを作成し、必要に応じて照合順序を変更し、新しいソースからターゲットにエクスポートします。

または

すべてのエラーを上書きする代替照合ツールを使用します。

-アップ

0
Appu