FIX: 您無法明確的值在中插入 IDENTITY 資料行的 SQL Server 資料表使用 SQL Server 2000 中 SQLBulkOperations 函式或 SQLSetPos ODBC 函式

文章翻譯 文章翻譯
文章編號: 828945 - 檢視此文章適用的產品。
Bug #: 470299 (SQL Server 8.0)

Microsoft 為一個可下載檔案散佈 SQL Server 2000 的修正程式。由於此修正程式是累積,每個新版本包含所有 Hotfix,隨附先前的 SQL Server 2000 所有安全性修正程式都修正發行。
全部展開 | 全部摺疊

在此頁中

徵狀

當您使用 SQLBulkOperations 函數或 SQLSetPos ODBC 函式將明確值插入 SQL Server IDENTITY 資料行 [ODBC 函式可能無法成功地,執行,而且可能會收到下列錯誤訊息:

外顯值時,必須指定為識別資料行,在資料表 'new_employees' IDENTITY_INSERT 設成 ON 的 DIAG [37000] [Microsoft] 驅動 [ODBC SQL Server 程式] [SQL Server]。 () 545

之所以發生這個問題,甚至當您設定 [IDENTITY_INSERT 包含 IDENTITY 資料行的資料表的選項為 ON。

發生的原因

即使 IDENTITY_INSERT 選項設定為 ON SQL Server 不正確地傳送 IDENTITY 資料行的狀態為不可以更新。 因為 ODBC 驅動程式會依賴資料錄集的可更新性狀態的 [IDENTITY 資料行,ODBC 驅動程式會假設 IDENTITY 資料行不是可更新。 ODBC 驅動程式因此,略資料行,當您使用 SQLBulkOperationsSQLSetPos ODBC 函式來將明確值插入 SQL Server IDENTITY 資料行。

解決方案

服務套件資訊

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

Hotfix 資訊

此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用 [中日期] 和 [時間] 工具,在 [控制台] 中的 [時區] 索引標籤]。
   Date         Time   Version            Size    File name
   -----------------------------------------------------------------------
   31-May-2003  18:45  2000.80.818.0      78,400  Console.exe
   25-Jun-2003  01:01  2000.80.818.0      33,340  Dbmslpcn.dll
   25-Apr-2003  02:12                    786,432  Distmdl.ldf
   25-Apr-2003  02:12                  2,359,296  Distmdl.mdf
   30-Jan-2003  01:55                        180  Drop_repl_hotfix.sql
   12-Sep-2003  03:26  2000.80.859.0   1,905,216  Dtspkg.dll
   26-Aug-2003  20:16  2000.80.854.0     528,960  Dtspump.dll
   23-Jun-2003  22:40  2000.80.837.0   1,557,052  Dtsui.dll
   23-Jun-2003  22:40  2000.80.837.0     639,552  Dtswiz.dll
   24-Apr-2003  02:51                    747,927  Instdist.sql
   03-May-2003  01:56                      1,581  Inst_repl_hotfix.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692  Msgprox.dll
   01-Apr-2003  02:07                      1,873  Odsole.sql
   05-Apr-2003  01:46  2000.80.800.0      62,024  Odsole70.dll
   07-May-2003  20:41  2000.80.819.0      25,144  Opends60.dll
   02-Apr-2003  21:48  2000.80.796.0      57,904  Osql.exe         
   02-Apr-2003  23:15  2000.80.797.0     279,104  Pfutil80.dll
   04-Aug-2003  18:17                    550,780  Procsyst.sql
   12-Sep-2003  00:37                     12,305  Qfe469315.sql
   22-May-2003  22:57                     19,195  Qfe469571.sql
   06-Sep-2003  01:36                  1,090,932  Replmerg.sql
   06-Sep-2003  07:18  2000.80.858.0     221,768  Replprov.dll
   06-Sep-2003  07:18  2000.80.858.0     307,784  Replrec.dll
   06-Sep-2003  00:00                  1,087,150  Replsys.sql
   13-Aug-2003  16:28                    986,603  Repltran.sql
   29-Jul-2003  20:13  2000.80.819.0     492,096  Semobj.dll       
   31-May-2003  18:27  2000.80.818.0     172,032  Semobj.rll
   05-Aug-2003  21:06                    127,884  Sp3_serv_uni.sql
   01-Jun-2003  01:01  2000.80.818.0   4,215,360  Sqldmo.dll       
   07-Apr-2003  17:44                     25,172  Sqldumper.exe
   19-Mar-2003  18:20  2000.80.789.0      28,672  Sqlevn70.rll
   27-Sep-2003  04:42  2000.80.865.0     180,792  Sqlmap70.dll     
   03-Sep-2003  02:56  2000.80.857.0     188,992  Sqlmmc.dll
   02-Sep-2003  23:03  2000.80.857.0     479,232  Sqlmmc.rll
   08-Feb-2003  06:40  2000.80.765.0      57,920  Sqlrepss.dll
   27-Sep-2003  04:42  2000.80.865.0   7,606,353  Sqlservr.exe     
   25-Jul-2003  21:44  2000.80.845.0     590,396  Sqlsort.dll      
   08-Feb-2003  06:40  2000.80.765.0      45,644  Sqlvdi.dll
   25-Jun-2003  01:01  2000.80.818.0      33,340  Ssmslpcn.dll
   01-Jun-2003  01:01  2000.80.818.0      82,492  Ssnetlib.dll
   01-Jun-2003  01:01  2000.80.818.0      25,148  Ssnmpn70.dll
   01-Jun-2003  01:01  2000.80.818.0     158,240  Svrnetcn.dll
   31-May-2003  18:59  2000.80.818.0      76,416  Svrnetcn.exe
   30-Apr-2003  23:52  2000.80.816.0      45,132  Ums.dll
   02-Jul-2003  00:19  2000.80.834.0      98,816  Xpweb70.dll
附註由於檔案相依性最新版 Hotfix 或包含這些檔案的功能也可能包含其他檔案。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。這個問題,首先已經在 Microsoft SQL Server 2000 服務套件 4 中獲得修正。

?考

如其他有關 [SQLBulkOperations 和 SQLSetPos 函式,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
294153注意: SQLBulkOperations 和 SQLSetPos 不要插入的識別值

如需有關軟體更新的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684用來描述 Microsoft 軟體更新標準術語的說明

屬性

文章編號: 828945 - 上次校閱: 2007年11月2日 - 版次: 3.3
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
關鍵字:?
kbmt kbhotfixserver kbqfe kbqfe kbsqlclient kbclientserver kberrmsg kbsqlserv2000presp4fix kbfix kbbug KB828945 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:828945
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