- - PR -
Sql server 2005 のMasterのDBの照合順序は、変更出来ないのでしょうか?
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-06-14 20:44
今までMSDE2000+VB6.0で開発を行っていたのですが、
Sql Server 2000の販売終了に伴い、Sql server 2005に変更する事が可能か どうかを調査する為にMSDE2000のDB構成を、Sql Server 2005に 移行してアプリが正常に動く事を確認中です。 しかし、照合順序について競合エラーが発生してしまい困っています。 接続状況と、ユーザーが処理中の業務を調べる為に、 CREATE TABLE TesLock ( 端末名 Varchar(70) 業務 Varchar(50)) を作成し、TesLock を参照して作業中の業務を取得しています。 接続が切れているのにもかかわらず、TesLock にデータが残っていては困るので Delete From TesLock where 端末名 not in ( select HostName from master.dbo.sysprocesses a,master.dbo.sysdatabases b where a.dbid = b.dbid and a.loginame = 'ユーザー名' and b.name = 'TesDB' Group by HostName) を実行して、データを削除しているのですが、 「equal to 操作の "SQL_Latin1_General_CP1_CI_AS" と "Japanese_CI_AS" 間での照合順序の競合を解決できません。」 が発生します。 TesLock テーブルが作成してあるTesDBは、照合順序「Japanese_CI_AS」で作成しました。 Masterは、Sql Server 2005をインストールした際に作成されていたのですが、 照合順序「SQL_Latin1_General_CP1_CI_AS」で作成されています。 Alter Database 〜を実行してみたり、 ツールで、Masterの照合順序を変更してみましたが、 Masterは、システムDBの為変更できません。となり変更できませんでした。 Masterの照合順序は、変更できないのでしょうか? それとも、私のインストールの仕方が正しくなかったからでしょうか? ※下記のselect分だけだったら、問題はありませんでした。 select HostName from master.dbo.sysprocesses a,master.dbo.sysdatabases b where a.dbid = b.dbid and a.loginame = 'ユーザー名' and b.name = 'TesDB' Group by HostName select分で取得したデータ数分LoopでDelete分を作成して処理していくしかないのでしょうか? 何かお分かりの方いましたら、教えて下さい。 お願い致します。 | ||||||||
|
投稿日時: 2006-06-15 13:36
こんにちは。
照合順序の問題はややこしいですね。 COLLATE句で照合順序のキャストが可能ですが、ヒントになるでしょうか。 COLLATE (Transact-SQL) http://msdn2.microsoft.com/ja-JP/library/ms184391.aspx | ||||||||
|
投稿日時: 2006-06-15 13:50
サーバ自体の照合順序を変更するのはちょっと大変です。 サーバー照合順序の設定と変更 http://msdn2.microsoft.com/ja-jp/library/ms179254.aspx で、ご自分が作成したテーブル列のCOLLATEを"SQL_Latin1_General_CP1_CI_AS"にしては いけないのでしょうか? _________________ 夏椰 @ わんくま同盟 夏椰の庵 Microsoft MVP for Windows Server System - SQL Server ( Jul 2006 - Jun 2008 ) | ||||||||
|
投稿日時: 2006-06-15 18:11
返信ありがとうございます。
う・・・本当に大変そうですね・・・・
「SQL_Latin1_General_CP1_CI_AS」のままやって見ましたが、 Varchar(12) で作成してある列に、漢字、全角数字をinsertしたら、 漢字は「?」に変換されて、数字は、半角の数字に変換されてしましました。 「Japanese_CI_AS」に変更したら、上記の動作はなくなったのでこれが原因だと思っていました。 ※MSDE2000の場合も、「Japanese_CI_AS」で作成していたので・・・ 「サーバー照合順序の設定と変更」 頑張ってやってみます。 ありがとうございました。 | ||||||||
1
