FIX:xp_sendmail 產生 UNICODE CSV 檔案格式

文章翻譯 文章翻譯
文章編號: 280720 - 檢視此文章適用的產品。
BUG #:351089 (SHILOH_BUGS)
BUG #:351894 (SHILOH_BUGS)
全部展開 | 全部摺疊

在此頁中

徵狀

如果您在 SQL Server 2000 中執行 xp_sendmail 命令來發送包含 .csv 檔案的郵件,然後嘗試以 Microsoft Excel、Microsoft Word 或除了「記事本」以外的其他任何應用程式開啟這個 .csv 檔案,您可能會收到警告訊息,表示無法識別這個檔案格式。

發生的原因

在 SQL Server 2000 中執行 xp_sendmail 命令會產生格式為 UNICODE 的檔案,但在 SQL Server 7.0 中,所產生的檔案是 ANSI 格式。

解決方案

如果要解決這個問題,請取得 SQL Server 2000 的最新版 Service Pack。如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
290211 如何取得最新版 SQL Server 2000 Service Pack

其他可行方案

這個修正程式的英文版本應具有下列檔案屬性 (或更新):
摺疊此表格展開此表格
日期版本大小檔名平台
Nov 21, 20008.00.0224165 KBSqlmap70.dllx86

狀況說明

Microsoft 已確認 SQL Server 2000 確實有上述問題, 這個問題最早已在 SQL Server 2000 Service Pack 1 中獲得修正。

其他相關資訊

重現問題的步驟

  1. 請執行下列命令:
    execute	master..xp_sendmail
    	@recipients = 'user1',
        	@message = 'Testing',
        	@query = 'select * from sysobjects',
        	@width = 256,
        	@subject = 'testing',
        	@attach_results = 'true',
        	@no_header = 'false',
        	@separator = ',',
        	@attachments = 'test.csv'
    					
  2. 當您收到 test.csv 檔案之後,請試著在 Excel 或 Word 中開啟,您會收到一個警告訊息,表示無法識別這個檔案格式。
  3. 請嘗試在 SQL Server 7.0 中執行相同的步驟,您會發現上述的格式問題並不會發生。
在套用 Hotfix 或 Service Pack 之後,將會實作下列兩個項目:
  • 建立 xp_sendmail 的選擇性參數 @ansi_attachment。這個參數可以為 True (表示附加檔案為 ANSI 格式)、False (表示附加檔案為 UNICODE 格式) 或不存在。如果省略這個參數,則會讀取 ansi_attachment 這個登錄值。
  • Sqlmap70.dll 會讀取下列新的登錄機碼,判斷要傳送的附加檔案是 ANSI 還是 Unicode 格式。

    針對預設執行個體:
    HKLM\Software\Microsoft\MSSQLSERVER\SQLMAPI\ansi_attachment
    針對具名執行個體:
    HKLM\Software\Microsoft\Microsoft SQL Server\InstanceNameHere\SQLMAPI\ansi_attachment
  • 如果沒有上述登錄機碼,請依照下列步驟加以建立。警告:不當使用 [登錄編輯程式] 可能會導致嚴重的問題,甚至必須重新安裝作業系統。Microsoft 並不保證可以解決您不當使用 [登錄編輯程式] 所導致的問題。請自行承擔使用 [登錄編輯程式] 的一切風險。

    1. 啟動 Regedt32.exe。
    2. 針對預設執行個體,請瀏覽至 HKLM\Software\Microsoft\MSSQLSERVER
      針對具名執行個體,請瀏覽至 HKLM\Software\Microsoft SQL Server\InstanceNameHere
    3. 建立名為 SQLMAPI 的新機碼。
    4. 將這個機碼的類別保留為空白。
    5. 建立名為 ansi_attachment 的新值。
    6. 將這個值的類型設定為 REG_DWORD。
    7. 將這個值設定為 1 表示附加檔案為 ANSI 格式;設定為 0 表示附加檔案為 Unicode 格式。

屬性

文章編號: 280720 - 上次校閱: 2006年4月27日 - 版次: 3.1
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Standard Edition
關鍵字:?
kbbug kbfix kbqfe kbsqlserv2000sp1fix KB280720
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com