您不能使用轉換新增在 Access 2002 Access 專案中的查詢

文章翻譯 文章翻譯
文章編號: 294923 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
進階: 須具備專家編碼、 互通性,與多使用者技能。

本文只適用於 Microsoft Access 專案 (.adp)。

本文章的有 Microsoft Access 2000] 版本請參閱 229681
全部展開 | 全部摺疊

在此頁中

徵狀

當您嘗試執行的轉換時新增查詢,Microsoft Access 專案中的,您可能會收到下列錯誤訊息:
無法在 ' 資料表名稱 的資料表中插入明確為識別資料行的值,IDENTITY_INSERT 設定為 OFF 時。

發生的原因

當您建立新的 SQL Server 資料庫 (包括 SQL Server 2000 桌面引擎) 時,IDENTITY_INSERT 選項則是設定為 OFF

如果您轉換一個 Microsoft Access 資料表,其中包含 [自動編號資料欄位鍵入該欄位將建立 SQL Server 上為 IDENTITY 資料行。與 [自動編號] 資料類型不同您就無法直接編輯 IDENTITY 資料行也不明確地將資料插入 IDENTITY 資料行,雖然該資料表的 [IDENTITY_INSERT] 選項設定為 OFF。若要插入,或更新 IDENTITY 資料行中的資料中,您必須設定 IDENTITY_INSERT 選項為 ON

解決方案

您可以使用 SET IDENTITY_INSERT 陳述式,將 IDENTITY_INSERT 選項設定。SET IDENTITY_INSERT 永遠參考一個資料表,然後您應該將其放之前 UPDATE 或 INSERT 陳述式,修改或將資料插入 IDENTITY 資料行。下列範例設定 NewEmployees 資料表 IDENTITY_INSERT。
   SET IDENTITY_INSERT NewEmployees ON
				

其他相關資訊

重製行為的步驟

  1. 開啟範例資料庫 Northwind.mdb。
  2. 在 [資料庫] 視窗中按一下 [員工] 資料表,然後按一下 [編輯] 功能表上的 [複製]。
  3. 編輯] 功能表上按一下 [貼上]。在 貼上資料表成為] 對話方塊,鍵入 NewEmployees資料表名稱] 方塊。按一下 [確定]
  4. 在 [設計] 檢視中建立新的查詢,然後關閉但不新增任何資料表或查詢的 [顯示資料表] 對話方塊。
  5. 在 [檢視] 功能表中上, 按一下 [SQL 檢視]。
  6. 在 [SQL] 視窗中輸入下列的 INSERT INTO 陳述式。此陳述式會建立一個新增查詢:
       INSERT INTO 
              NewEmployees (EmployeeID, LastName, FirstName, Title,
              TitleOfCourtesy, BirthDate, HireDate, Address, City, Region,
              PostalCode, Country, HomePhone, Extension, Photo, Notes,
              ReportsTo)
       SELECT 
              Employees.EmployeeID, Employees.LastName, Employees.FirstName,
              Employees.Title, Employees.TitleOfCourtesy, Employees.BirthDate,
              Employees.HireDate, Employees.Address, Employees.City,
              Employees.Region, Employees.PostalCode, Employees.Country,
              Employees.HomePhone, Employees.Extension, Employees.Photo,
              Employees.Notes, Employees.ReportsTo
       FROM 
              Employees;
    					
  7. 將查詢儲存為 qryAppend,然後再關閉 [查詢]。
  8. 在 [工具] 功能表上指向 [資料庫公用程式,然後按一下 [SQL 轉換精靈]。
  9. 完成 「 SQL 轉換精靈 」 中的步驟,並接受預設選取項目除外,如以下所述:
    建立新的資料庫: [是]
    您想要匯出到 SQL Server 哪些資料表: 匯出所有資料表
    將時間戳記新增到資料表: 絕不否
    建立新的存取用戶端/伺服器應用程式: [是]
  10. 「 SQL 轉換精靈 」 完成之後關閉轉換報告。
  11. 嘗試執行該 qryAppend 預存程序,並記下錯誤訊息。
  12. 若要將設定 IDENTITY INSERT ON,新增下行的 SQL qryAppend 預存程序直接在 AS 關鍵字之後:
       SET IDENTITY_INSERT NewEmployees ON
    						
    預存程序時您完,應該類似下列的文字:
       ALTER PROCEDURE qryAppend
       AS
       SET IDENTITY_INSERT NewEmployees ON
       INSERT INTO 
              NewEmployees (EmployeeID, LastName, FirstName, Title,
              TitleOfCourtesy, BirthDate, HireDate, Address, City, Region,
              PostalCode, Country, HomePhone, Extension, Photo, Notes,
              ReportsTo)
       SELECT 
              Employees.EmployeeID, Employees.LastName, Employees.FirstName,
              Employees.Title, Employees.TitleOfCourtesy, Employees.BirthDate,
              Employees.HireDate, Employees.Address, Employees.City, 
              Employees.Region, Employees.PostalCode, Employees.Country, 
              Employees.HomePhone, Employees.Extension, Employees.Photo, 
              Employees.Notes, Employees.ReportsTo
       FROM 
              Employees
    					
  13. 儲存已修改預存程序,然後再執行它。請注意,它會成功。

?考

IDENTITY INSERT 的相關資訊,請參閱 SQL Server 線上叢書 》。如果要下載之 SQL Server 線上叢書 》,請造訪下列 Microsoft 網站 (英文):
http://technet.microsoft.com/en-us/sqlserver/bb331756.aspx

屬性

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