2009-09-09 10 views
0

Je gère une application qui utilise SQL Server Express 2005 comme backend. L'application permet aux utilisateurs de créer de nouvelles bases de données et de fournir le nom de la nouvelle base de données.Problème avec DBCC CHECKIDENT avec des caractères chinois dans le nom de la table

Lorsque l'application est de charger les données par défaut que je fais l'appel SQL suivante:

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

Le code fonctionne bien aussi longtemps que tout est en anglais.

Mais si l'utilisateur spécifie les caractères chinois dans la base de données nom l'apparence d'appel comme celui-ci:

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

Cet appel échoue avec ce message d'erreur:. « Impossible de trouver la base de données « e ??? » La La base de données n'existe pas ou a été supprimée avant qu'une déclaration ne tente de l'utiliser. "

Je fais beaucoup d'autres appels avec le nom de base de données qui fonctionnent correctement. Par exemple, cette instruction s'exécute sans problème. L'erreur semble être spécifique à l'appel DBCC CHECKIDENT. Des idées?

Remarque: Je cours sur la version chinoise de Windows XP.

Répondre

1

Essayez de passer la chaîne comme unicode (see KB):

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

parfait. Je vous remercie. – epotter

Questions connexes