43

Microsoft SQL Server Management Studio を使用しています。2 つのデータベースがあります。1 つはマスター データベースを含むシステム データベースで、もう 1 つは という私のデータベースCCTNS_CAS_DE_DBです。CCTNS_CAS_DE_DBデータベースを使用するツールを使用してレポートを生成しようとしているとき。

次のエラーが表示されます。

equal to 操作で "Latin1_General_CI_AI" と "SQL_Latin1_General_CP1_CI_AS" の間の照合の競合を解決できません

SQL Server を調べて、マスター データベースのプロパティを確認すると、照合順序が と表示されますが、データベースLatin1_General_CI_AIのプロパティに移動すると、照合順序が と表示されます。CCTNS_CAS_DE_DBSQL_Latin1_General_CP1_CI_AS

オンラインでエラーを検索しましたが、ほとんどのソリューションは特定のテーブルの照合を変更する方法を示していますが、データベースの照合を変更するクエリは見つかりませんでしたLatin1_General_CI_AI

私は1つのクエリに出くわしました:-

ALTER DATABASE CCTNS_CAS_DE_DB COLLATE Latin1_General_CI_AI

SQL Server でこのクエリを実行すると、次のエラーがスローされました。

メッセージ 5030、レベル 16、状態 2、行 1
操作を実行するためにデータベースを排他的にロックできませんでした。
メッセージ 5072、レベル 16、状態 1、行 1
ALTER DATABASE が失敗しました。データベース 'CCTNS_CAS_DE_DB' の既定の照合順序を Latin1_General_CI_AI に設定することはできません。

この質問はすでにここに投稿されていることは知っていますが、それは別の文脈にあると思います。

4

2 に答える 2

117

最初に 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 
于 2013-06-29T07:14:23.897 に答える
24

これがあなたの問題への最大のヒントです:

メッセージ5030、レベル16、状態2、行1データベースを排他的にロックして操作を実行できませんでした。

ステートメントを実行する前にデータベースをシングルユーザーモードにALTER DATABASE設定し、完了したらデータベースをマルチユーザーモードに戻す必要があります。これにより、データベースがロックされ、現在の接続でのみ使用できるようになり、ALTER DATABASE ... COLLATEステートメントを正常に実行できるようになります。

これを行うには、 SQL ServerManagementStudioまたはT-SQLコマンドを使用できます。

于 2012-12-09T08:29:59.397 に答える