Fehler 0xc0202049: Datenfluss Aufgabe 1: Fehler beim Einfügen in die schreibgeschützte Spalte

80

Ich verwende den SQL Server 2008-Import- und Exportassistenten. Ich muss eine Datenbank importieren. Ich habe den SQL Server-Import / Export-Assistenten geöffnet und die folgenden Aktionen ausgeführt: -

  1. Als Ziel habe ich "SQL Server Native Client 10" gewählt.

  2. Dann habe ich Kopierdaten aus einer oder mehreren Tabellen oder Ansichten ausgewählt.

  3. SSIS wird sofort ausgeführt

aber ich habe die folgenden Fehler bekommen,

Betrieb gestoppt ...

  • Datenflussaufgabe initialisieren (Erfolg)

  • Verbindungen initialisieren (Erfolg)

  • Festlegen des SQL-Befehls (Erfolg)

  • Einstellen der Quellverbindung (Erfolg)

  • Festlegen der Zielverbindung (Erfolg)

  • Validierung (Fehler)

Meldungen Fehler 0xc0202049: Datenfluss Aufgabe 1: Fehler beim Einfügen in die schreibgeschützte Spalte "ActionID". (SQL Server-Import- und Exportassistent)

Fehler 0xc0202045: Datenfluss Aufgabe 1: Überprüfung der Spaltenmetadaten fehlgeschlagen. (SQL Server-Import- und Exportassistent)

Fehler 0xc004706b: Datenflussaufgabe 1: "Komponente" Ziel - AuditActions "(22)" Validierung fehlgeschlagen und Validierungsstatus "VS_ISBROKEN" zurückgegeben. (SQL Server-Import- und Exportassistent)

Es scheint, dass ich keine Identitätsspalten und Zeitstempelspalten importieren kann. Wie kann ich also den Import dieser Werte erzwingen?

John Gu
quelle

Antworten:

27

Führen Sie vor dem Importdatum die folgende Abfrage aus, um das Einfügen der Identität festzulegen:

SET IDENTITY_INSERT TableName ON

Führen Sie dann die Importvorgänge aus.

Führen Sie nach dem Importdatum die folgende Abfrage aus, um das Einfügen der Identität zu deaktivieren:

SET IDENTITY_INSERT TableName OFF
Kishore
quelle
221

Bei allem Respekt vor Kishores Antwort gilt dieser Ansatz, wenn Sie die Pakete ändern. Da Sie den Import / Export-Assistenten verwenden, ist es einfacher, das Kontrollkästchen Enable Identity Insertauf der Registerkarte Spaltenzuordnungen zu aktivieren.

Klicken Sie im Import-Export-Assistenten nach Auswahl der zu kopierenden Tabelle auf die Edit Mappings...Schaltfläche

Geben Sie hier die Bildbeschreibung ein

Klicken Sie im daraufhin angezeigten Bildschirm auf die Enable identity insertEigenschaft, und Ihre Identitäten werden repliziert.

Geben Sie hier die Bildbeschreibung ein

Gleiches SET IDENTITY_INSERT TableName ONNettoergebnis wie Issuing & OFF, dies erfolgt jedoch automatisch zur Erstellungszeit.

billinkc
quelle
Dank das Problem mit den Identitätsspalten ist gelöst, und jetzt habe ich Probleme mit Zeitstempelspalten. Hast du eine Idee, was ich mit ihnen machen kann?
John Gu
1
Zeitstempel werden hier erwähnt: sqlmatters.com/Articles/…
Niall Connaughton
11
Wenn Sie mehrere Tabellen importieren, können Sie mehrere Tabellen in der Liste auswählen und dann auf Zuordnungen bearbeiten klicken, damit die Option Identitätseinfügung aktivieren mit einem Klick auf alle ausgewählten Tabellen angewendet wird.
pmartin
1
Die Kishore-Lösung hat mein Problem nicht gelöst, aber die von Ihnen angebotene. Vielen Dank.
MadJlzz
Ich frage mich nach dem Export, ob dies erforderlich ist: SET IDENTITY_INSERT TableName OFF. Vielen Dank.
Kevin .NET