Sie können nicht verwenden, nach dem Upsizing Anfügeabfragen in einer Access-Projekt in Access 2002

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 294923 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Erweiterte: Erfordert Experten Codierung und Interoperabilität sowie Mehrbenutzerfähigkeiten.

Die Informationen in diesem Artikel beziehen sich ausschließlich auf Microsoft Access-Projekte (.adp).

Eine Microsoft Access 2000-Version dieses Artikels finden Sie unter 229681.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Beim Versuch, ein Upsizing ausführen Anfügeabfrage in einer Microsoft Access-Projekt, wird möglicherweise die folgende Fehlermeldung:
Expliziten Wert für Identitätsspalte kann nicht in Tabelle ' Tabellenname ' Einfügen werden, wenn IDENTITY_INSERT auf OFF festgelegt ist.

Ursache

Wenn Sie eine neue SQL Server-Datenbank (einschließlich SQL Server 2000 Desktop Engine) erstellen, werden die Optionen IDENTITY_INSERT auf OFF festgelegt.

Wenn Sie ein Upsizing eine Microsoft Access-Tabelle, die ein Feld eines AutoWert-Daten enthält, eingeben, wird das Feld als eine IDENTITY-Spalte auf SQL Server erstellt. Im Gegensatz zu den Datentyp AutoWert können nicht Sie direkt zu bearbeiten, IDENTITY-Spalten, noch Daten explizit in eine IDENTITY-Spalte eingefügt, während die Option IDENTITY_INSERT für diese Tabelle auf OFF festgelegt ist. Um einzufügen oder Daten in eine IDENTITY-Spalte aktualisieren, müssen Sie die Option IDENTITY_INSERT auf ON festlegen.

Lösung

Die SET IDENTITY_INSERT-Anweisung können Sie die Option IDENTITY_INSERT festgelegt. SET IDENTITY_INSERT verweist immer auf eine Tabelle, und Sie sollten vor der Update- oder INSERT-Anweisung, die modifiziert oder fügt Daten in eine IDENTITY-Spalte platzieren. Im folgenden Beispiel wird IDENTITY_INSERT für die Tabelle NewEmployees.
   SET IDENTITY_INSERT NewEmployees ON
				

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Öffnen Sie die Beispieldatenbank "Nordwind.mdb".
  2. Klicken Sie im Datenbankfenster klicken Sie auf die Tabelle Personal, und klicken Sie im Menü Bearbeiten auf Kopieren .
  3. Klicken Sie im Menü Bearbeiten auf Einfügen . Geben Sie im Dialogfeld Tabelle einfügen als NewEmployees in das Feld Tabellenname ein. Klicken Sie auf OK .
  4. Erstellen Sie eine neue Abfrage in der Entwurfsansicht, und schließen Sie dann im Dialogfeld Tabelle anzeigen ohne keine Tabellen oder Abfragen hinzuzufügen.
  5. Klicken Sie im Menü Anzeigen auf SQL-Ansicht.
  6. Geben Sie die folgende INSERT INTO-Anweisung im SQL-Fenster. Diese Anweisung Erstellen einer Anfügeabfrage:
       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. Speichern Sie die Abfrage als QryAppend , und schließen Sie die Abfrage.
  8. Zeigen Sie im Menü Extras auf Datenbank-Dienstprogramme , und klicken Sie dann auf Upsizing-Assistent .
  9. Führen Sie die Schritte der Upsizing-Assistent, und akzeptieren Sie die Standardauswahl außer wie unten beschrieben:
    Neue Datenbank erstellen: Ja
    Welche Tabellen möchten Sie mit SQL Server exportieren: Exportieren Sie alle Tabellen
    Timestamp-Felder zu Tabellen hinzufügen: Nein, nie
    Erstellen Sie eine neue Access-Client-Server-Anwendung: Ja
  10. Nachdem der Upsizing-Assistent abgeschlossen ist, schließen Sie den Upsizing-Bericht.
  11. Versuchen Sie, führen Sie die QryAppend, die gespeicherte Prozedur, und beachten Sie die Fehlermeldung.
  12. Um die IDENTITY INSERT auf ON festgelegt, fügen Sie die folgende Zeile von SQL an die QryAppend, die gespeicherte Prozedur direkt nach dem Schlüsselwort AS :
       SET IDENTITY_INSERT NewEmployees ON
    						
    Wenn Sie fertig sind, ähneln die gespeicherte Prozedur sollte den folgenden Text:
       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. Speichern Sie die geänderte gespeicherte Prozedur, und führen Sie es. Hinweis: es erfolgreich ist.

Informationsquellen

Weitere Informationen zu IDENTITY INSERT finden Sie in SQL Server-Onlinedokumentation. Um die SQL Server-Onlinedokumentation herunterzuladen, die folgende Microsoft-Website:
http://technet.microsoft.com/en-us/sqlserver/bb331756.aspx

Eigenschaften

Artikel-ID: 294923 - Geändert am: Dienstag, 4. Februar 2014 - Version: 3.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Access 2002 Standard Edition
Keywords: 
kbnosurvey kbarchive kbmt kbclientserver kberrmsg kbprb KB294923 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 294923
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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