2009-09-09 81 views
0

我維護使用SQL Server Express 2005作爲後端的應用程序。該應用程序允許用戶創建新數據庫併爲新數據庫提供名稱。DBCC CHECKIDENT與表名中的中文字符問題

當應用程序被加載默認的數據我提出以下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。

回答

1

嘗試傳遞字符串爲Unicode(see KB):

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

完美。謝謝。 – epotter 2009-09-09 14:19:48

相關問題