當您嘗試填入資料庫專業人員的 Visual Studio 2005 Team 版中的資料產生計劃的 SQL Server 2000 資料表時,可能會收到錯誤訊息: 「 System.Data.SqlClient.SqlError: 從資料不允許隱含轉換輸入 nte

文章翻譯 文章翻譯
文章編號: 928965 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

當想填入資料庫專業人員的 Microsoft Visual Studio 2005 Team 版中的資料產生計劃的 Microsoft SQL Server 2000 資料表可能會收到類似下列的錯誤訊息:
表格 TableName: System.Data.SqlClient.SqlError: 不允許從隱含轉換資料型別 ntext 資料輸入 varchar,資料表 'TableName ',' ColumnName' 的資料行。使用 CONVERT 函數來執行這項查詢。
附註當您嘗試填入欄位包含超過 4000 個字元為 varcharnvarchar 欄位時,就會發生這個問題。

發生的原因

之所以發生這個問題,是因為 SqlClient 提供者將轉換成 文字varcharnvarchar 資料型別或 ntext 資料型別。但是,您不能將 文字ntext 資料型別轉換為 varcharnvarchar 資料型別在 SQL Server 2000 中。

附註在 Microsoft SQL Server 2005 中 SqlClient 提供者使用 varchar(max)nvarchar(max) 資料型別,而不是 文字ntext 資料型別。因此,在 SQL Server 2005 中沒有發生此問題。

其他可行方案

若要解決這個問題,請確定 SQL Server 2000 資料庫中的 varchar 資料行不包含超過 4000 個字元。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

如果要重現問題的步驟

  1. 啟動 Microsoft Visual Studio 2005。
  2. 在 [檔案] 功能表上指向 [新增],然後按一下 [專案]。
  3. 展開 [資料庫專案,然後按一下 [Microsoft SQL Server
  4. 按一下 [SQL Server 2000,並在 [名稱] 方塊中輸入 Database1 然後按一下 [確定]]。
  5. 在 [方案總管] 中請展開 [結構描述物件]、 資料表 上按一下滑鼠右鍵]、 按一下 [新增],然後按一下 [表格]。
  6. 在 [名稱] 方塊中輸入 MaxVarChar,然後按一下 [新增]。
  7. dbo.MaxVarChar.table.sql 檔案中的程式碼取代下列程式碼範例。
    CREATE TABLE [dbo].[MaxVarChar]
    (
    [VarChar_maxLength] [varchar] (8000) COLLATE SQL_Latin1_General_CP1_CS_AS NULL
    ) ON [PRIMARY]
  8. 在 [資料] 功能表上指向 [T-SQL 編輯器,然後按一下 [執行 SQL]。
  9. 連接至資料庫] 對話方塊按一下在 [連線] 清單的資料庫連線,再按 [確定]
  10. 在 [方案總管] 中 資料產生計畫] 上按一下滑鼠右鍵,指向 [新增],然後再按一下 [資料產生計畫
  11. 在 [名稱] 方塊中輸入 DataGenerationPlan1.dgen,然後按一下 [新增]。
  12. 按一下以選取 dbo.MaxVarChar 核取方塊。
  13. 在 [資料] 功能表上指向 [資料產生器,然後按一下 [產生資料

    附註如果按一下 [是]您想要插入新資料列之前,先清除選取的資料表中的內容嗎??] 對話方塊隨即出現。
  14. 連接至資料庫] 對話方塊按一下在 [連線] 清單的資料庫連線,再按 [確定]

    您會收到 < 徵狀 > 一節所述之錯誤訊息。

屬性

文章編號: 928965 - 上次校閱: 2006年12月13日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft Visual Studio 2005 Team Edition for Database Professionals
關鍵字:?
kbmt kbtshoot kbpubtypekc kberrmsg kbprb KB928965 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:928965
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