it-swarm.com.de

Was ist der Sinn von WHERE 1 = 2 für die SELECT INTO-Tabellenabfrage?

Wenn Sie eine neue Tabelle aus einer vorhandenen in SQL Server erstellen möchten, können Sie Folgendes tun

SELECT * into Table2
from Table1
WHERE 1=2

Was ist der Punkt der where-Klausel? Ich habe es ohne die where-Klausel versucht und es lief gut. Ich habe diese where-Klausel in vielen Beispielen im Internet gesehen, aber nicht den Grund, warum sie erforderlich ist.

39

Der Grund, warum Sie die WHERE 1=2 - Klausel in diese SELECT INTO - Abfrage einfügen, besteht darin, eine Feldkopie der vorhandenen Tabelle mit keine Daten zu erstellen.

Wenn Sie dies getan haben:

select *
into Table2
from Table1

Table2 Wäre ein genaues Duplikat von Table1, Einschließlich der Datenzeilen. Wenn Sie jedoch nicht möchten, dass die in Table1 Enthaltenen Daten nur die Tabellenstruktur enthalten, fügen Sie eine WHERE -Klausel ein, um alle Daten herauszufiltern.

BOL SELECT INTO Referenz Zitat:

SELECT… INTO erstellt eine neue Tabelle in der Standard-Dateigruppe und fügt die resultierenden Zeilen aus der Abfrage ein.

Wenn Ihre WHERE -Klausel keine resultierenden Zeilen enthält, wird keine in die neue Tabelle eingefügt: Daher erhalten Sie das doppelte Schema der ursprünglichen Tabelle ohne Daten (was in diesem Fall das gewünschte Ergebnis wäre). .

Der gleiche Effekt kann mit TOP (0) erzielt werden, zum Beispiel:

select top (0) *
into Table2
from Table1;

Hinweis: Der SELECT INTO Dupliziert nicht die Indizes, Einschränkungen, Trigger oder Partitionsschemata der Quelltabelle.

54
Thomas Stringer