我正在维护一个使用SQL Server Express 2005作为后端的应用程序。该应用程序允许用户创建新数据库并提供新数据库的名称。
当应用程序加载默认数据时,我进行以下SQL调用:
DBCC CHECKIDENT('[myDB].[CsSchema].[CsMyDataType]', RESEED) WITH NO_INFOMSGS
只要一切都是英文的,代码就可以正常工作。
但如果用户在数据库名称中指定了中文字符,则调用如下所示:
DBCC CHECKIDENT('[eå®ä¸åe].[CsSchema].[CsMyDataType]', RESEED) WITH NO_INFOMSGS
此调用失败,并显示以下错误消息:
“找不到数据库'E'???。该数据库不存在,或者在语句尝试使用它之前被删除。“
我用数据库名称进行了许多其他正常工作的调用。例如,此语句执行时没有问题。
SET IDENTITY_INSERT [eå®ä¸åe].[CsSchema].[CsMyDataType] OFF
错误似乎是特定于DBCC CHECKIDENT调用的。有什么想法吗?
注意:我运行的是中文版的Windows XP。