Insert into ... Select *, wie Sie zu ignorieren Identität?

Habe ich eine temp-Tabelle mit der genauen Struktur einer konkreten Tabelle T. Es wurde wie folgt erstellt:

select top 0 * into #tmp from T

Nach der Verarbeitung und Abfüllung in Inhalt in #tmp, ich möchte, um den Inhalt zu kopieren zurück zu T wie diese:

insert into T select * from #tmp

Dies ist okay, solange T haben nicht die identity-Spalte, aber in meinem Fall funktioniert. Gibt es eine Möglichkeit, dass ich ignorieren kann, die auto-Inkrement-identity-Spalte aus #tmp wenn ich kopieren T? Meine motivation ist zu vermeiden, dass zu buchstabieren alle Spaltennamen in der Insert Into-Liste.

EDIT: das Umschalten identity_insert würde nicht funktionieren, weil die pkeys in #tmp kollidieren können, die mit denen in T wenn Zeilen eingefügt wurden, in T außerhalb von meinem Skript, dass, wenn #tmp hat auto-increment der pkey, um die Synchronisierung mit T in den ersten Platz.

Können Sie erklären, ein wenig mehr darüber, warum Sie möchten, eine temp-Tabelle kopieren, in Erster Linie bitte? Kann es einen besseren Weg, das zu erreichen, was Sie suchen.
1. es gibt mir eine chance, um eine Vorschau der Daten, bevor ich die einfügen 2. Ich habe die Verknüpfungen zwischen temporären Tabellen als Teil meiner Berechnung; temp-Tabellen erlaubt mir, mich zu konzentrieren auf die genaue Menge Daten, die ich arbeite mit. Ich denke, das war es. Irgendwelche Vorschläge/Kommentare?
Eure Aufgabe ist einfach, um doppelte Daten, die schon drin? Oder sind Sie Entrümpelung T, bevor Sie in einfügen?

InformationsquelleAutor Haoest | 2008-09-23

Schreibe einen Kommentar