So kopieren Sie eine Zeile mit jeder Spalte außer der Identitätsspalte (SQL Server 2005)

8

Mein Code:

%Vor%

Der Fehler ist:

%Vor%

Und ich habe

eingestellt %Vor%     
Seth 04.08.2011, 23:36
quelle

7 Antworten

8
%Vor%

Es scheint jedoch viel einfacher zu sein, die folgende SQL zu erstellen und die Tabelle #temp ganz zu vermeiden:

%Vor%     
Aaron Bertrand 05.08.2011, 04:17
quelle
3

Versuchen Sie Folgendes:

%Vor%

Testskript (getestet in SQL 2005):

%Vor%     
Chandu 04.08.2011 23:40
quelle
1

Versuchen Sie, die Spalten anzugeben:

%Vor%

Scheint so, als ob Sie denken, Sie versuchen, in das PK-Feld einzufügen, da Sie nicht ausdrücklich die einzufügenden Spalten definieren. Wenn die Identity-Einfügung deaktiviert ist und Sie die Nicht-Pk-Spalten angeben, sollten Sie diesen Fehler nicht erhalten.

    
Abe Miessler 04.08.2011 23:40
quelle
1

Hier ist ein Beispiel zum dynamischen Erstellen einer Liste von Spalten - mit Ausnahme der Primärschlüsselspalten - und Ausführen des INSERT

%Vor%     
jveazey 05.08.2011 03:14
quelle
0

Versuchen Sie die INSERT-Anweisung mit EXEC aufzurufen:

%Vor%     
Andriy M 05.08.2011 00:14
quelle
0

Sie können das nicht tun:

%Vor%

Weil die Spaltenauflistungen nicht identisch sind. Sie haben die PK-Spalte aus #t gelöscht, sodass Sie in #t 1 Spalte weniger als in CTABLE haben. Dies entspricht dem folgenden:

%Vor%

Dies würde aus offensichtlichen Gründen nicht funktionieren. In ähnlicher Weise können Sie das Platzhalterzeichen * nicht angeben, um die Einfügung auszuführen, wenn Sie nicht alle Spalten einfügen. Die einzige Möglichkeit, die Einfügung ohne Einfügen der PK durchzuführen, besteht darin, jede Spalte anzugeben. Sie können eine Liste von Spalten über dynamic sql generieren, aber Sie müssen sie auf die eine oder andere Weise angeben.

    
Derek Kromm 05.08.2011 01:24
quelle
0

Wenn Sie SQL Server Management Studio und Ihre Probleme verwenden, haben Sie zu viele Felder, um sie alle außer der Identitätsspalte einzugeben. Klicken Sie dann mit der rechten Maustaste auf die Tabelle und klicken Sie auf "Skripttabelle als" / "Auswählen" / "Neues Abfragefenster" ".

Dies wird eine Liste von Feldern zur Verfügung stellen, die Sie kopieren können & amp; Einfügen in Ihre eigene Abfrage und dann entfernen Sie einfach die Identität Spalte.

    
colmde 28.09.2013 21:36
quelle

Tags und Links