it-swarm.com.de

Import und Export Wizard mit Identitätsspalte

Ich möchte Daten von einer DB in eine andere verschieben, wobei die Identitätsspaltenwerte in der alten DB erhalten bleiben. Beim Ausführen des Assistenten erhalte ich einen Überprüfungsfehler "Fehler beim Einfügen in die schreibgeschützte Spalte" ChannelID ".

Wo ist ChannelID eine Identitätsspalte in dieser Tabelle ... Wie kann ich die Identitätsfunktionalität überschreiben, um die Daten importieren zu können?

55
Elad Lachmi

Sie müssen Identitätsinsertion aktivieren. Es gibt ein Kontrollkästchen, wenn Sie auf die Zuordnungen bearbeiten klicken.

102
MichaelHouse

Die Antwort von Byte56 ist korrekt - aktivieren Sie auf dem Bildschirm "Zuordnungen bearbeiten" die Option zum Einfügen der Identität. Ich wollte nur darauf hinweisen, dass die Liste "Select Source Tables and Views" die Mehrfachauswahl unterstützt. Sie können also die Umschalttaste oder die Strg-Taste gedrückt halten, um mehrere Tabellen in der Liste auszuwählen. 

8
OffTheRadar

In EDIT COLUMN MAPPINGS , Tick AKTIVIEREN VON IDENTITÄT EINFÜGEN. Klicken Sie anschließend auf die EDIT SQL - Taste.

Veränderung

[MyID] int NOT NULL,

in

[MyID] int IDENTITY(1,1),

Funktioniert beim Importieren einer MS Access-Datenbank. Dadurch werden die Daten im Feld Autonumber, das in die Identitätsspalte konvertiert wird, beibehalten.

5
hubert17

Sie sollten SET IDENTITY INSERT ON verwenden, um das Einfügen von Werten in eine IDENTITY-Spalte zu ermöglichen

Hier ist ein Link zu MSDN

5
il_guru

Ich habe gerade ein Upgrade auf SQL Server Management Studio 2017 durchgeführt. Ich habe versucht, das Kontrollkästchen "Identität verwenden" im Dialogfeld "Zuordnungen bearbeiten" zu aktivieren. Dies funktionierte jedoch nicht. Beim Aktualisieren einer vorhandenen Tabelle können Sie mit dem Assistenten keine SQL-Anweisungen bearbeiten. Stattdessen konnte ich es als Paket auf meiner Festplatte speichern. Ich habe die Datei dann im Editor bearbeitet und nach "Identität" gesucht. Natürlich wurde die Eigenschaft auf true gesetzt, was bedeutet, dass der Wert für die Identitätsspalte gemäß den Kommentaren in der Datei selbst aus der Quelle kopiert wird. Wenn Sie den Wert in false ändern, wird der Wert automatisch im Ziel generiert. Hoffe das hilft.

1
SteveB

SQL Server 2008 R2 mit SSMS 2008 R2.

Durch das Aktivieren der Identität für die "Mappings bearbeiten" bleibt die Identität nicht erhalten = true. Ich muss das SQL für jede Tabelle manuell bearbeiten und die IDENTITY-Eigenschaft in den SQL-Code aufnehmen.

Beispiel: ADD MS_IDENT numerisch (18,0) IDENTITY NOT NULL,

1
Joseph

Ich habe einige Zeit versucht, eine Lösung dafür zu finden

Ich habe eine Access-Datenbank mit 300+ Tabellen und mit dem SSMS2017-Importtool konnte ich es nicht erhalten, den Primärschlüssel und die Autonummer beizubehalten, ohne die Konfiguration für jede Tabelle manuell bearbeiten zu müssen.

Am Ende habe ich ein von Bullzip erstelltes Tool (MS Access to MSSQL) verwendet, mit dem ich den Zugriff auf mssql konvertieren kann (sie haben auch ein Tool für den Zugriff auf MySQL).

das Tool erledigt die Arbeit für Sie, entweder wenn Sie eine kleine Tabelle haben oder direkt zum Server.

Alle IDs sind intakt und Autonummern sind auch da drin .. 

job erledigt.

0
Andie