0

バックエンドとして SQL Server Express 2005 を使用するアプリケーションを保守しています。このアプリケーションにより、ユーザーは新しいデータベースを作成し、新しいデータベースの名前を指定できます。

アプリが既定のデータを読み込んでいるときに、次の SQL 呼び出しを行います。

DBCC CHECKIDENT('[myDB].[CsSchema].[CsMyDataType]', RESEED) WITH NO_INFOMSGS

すべてが英語である限り、コードは正常に機能します。

ただし、ユーザーがデータベース名に漢字を指定した場合、呼び出しは次のようになります。

DBCC CHECKIDENT('[e安丞北e].[CsSchema].[CsMyDataType]', RESEED) WITH NO_INFOMSGS

この呼び出しは次のエラー メッセージで失敗します。

データベース名を使用して、適切に機能する他の多くの呼び出しを行います。たとえば、次のステートメントは問題なく実行されます。

SET IDENTITY_INSERT [e安丞北e].[CsSchema].[CsMyDataType] OFF

このエラーは、DBCC CHECKIDENT 呼び出しに固有のもののようです。何か案は?

注: Windows XP の中国語版を実行しています。

4

1 に答える 1

1

文字列を unicode として渡してみてください ( KB を参照)。

DBCC CHECKIDENT(N'[e安丞北e].[CsSchema].[CsMyDataType]', RESEED) WITH NO_INFOMSGS
于 2009-09-09T13:50:23.433 に答える