程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQLserver中半個漢字的處理

SQLserver中半個漢字的處理

編輯:關於SqlServer
      我單位的數據庫,最近從Sqlserver2000升級到Sqlserver2008,需要將原來的Sql2000的數據導入到SqlServer2008。這個本來沒有什麼話好說的,但是,問題發生了。數據導入工具的提示是:“鏈接服務器 '(null)' 的 OLE DB 訪問接口'STREAM' 返回了對列 '[!BulkInsert].***' 無效的數據。 ”,其中***是具體的字段名。

       問題發生的原因很不好意思,因為歷史的歷史的原因,Sqlserver2000的數據也是從別的地方導入的,在那個很久很久以前的歷史時刻,是會發生半個漢字的問題的。大約就是字符串的最後一個漢字因為超過最大限制,只保存了半個。

       原來在Sqlserver2000裡面,varchar就算有半個漢字,那也不影響使用,只是在顯示到界面的時候,美觀方面會有問題而已。可是現在導入Sqlserver2008的時候,sql2008堅決的拒絕接受帶有半個漢字的varchar字段。

       你知道,行政命令是不可反對的,因此,必須把所有數據都原樣的導入到新的數據庫。當然,經過友好磋商,領導同意去掉那最後的半個漢字。

       OK,問題擺出來了,怎麼去掉最後半個漢字?

       寫程序?理論上沒有問題,可是,要寫多少個程序?誰又知道有多少個字段會有這樣的半個漢字?碰到一個就寫一個?饒了我吧!

       於是土辦法出籠:

       1、使用SQL2000的導入工具,千萬不能使用Sql2008的工具,用戶界面慢不說,碰到錯誤這個退出的速度也太堅決了。

       2、先對所有表做導入,出現錯誤的表逐一處理。Sql2000的錯誤提示雖然沒有Sql2008多,可是很准確!精確到哪行,哪個字段有問題。因此,根據提示再對具體的字段做處理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved