it-swarm.com.de

Wie erstelle ich eine Tabelle basierend auf einer anderen Tabelle?

Ich möchte eine Tabelle basierend auf der Definition einer anderen Tabelle erstellen.

Ich komme von Oracle und mache normalerweise Folgendes:

 CREATE TABLE schema.newtable AS SELECT * FROM schema.oldtable;

In SQL Server 2008 scheint dies nicht möglich zu sein.

27
oliverdejohnson

In SQL Server gibt es keine solche Syntax, obwohl CREATE TABLE AS ... SELECT existiert in PDW. In SQL Server können Sie diese Abfrage verwenden, um eine leere Tabelle zu erstellen:

SELECT * INTO schema.newtable FROM schema.oldtable WHERE 1 = 0;

(Wenn Sie eine Kopie der Tabelle erstellen möchten einschließlich aller Daten, lassen Sie die WHERE -Klausel weg.)

Beachten Sie, dass hierdurch dieselbe Spaltenstruktur erstellt wird (einschließlich einer IDENTITY-Spalte, falls vorhanden), jedoch keine Indizes, Einschränkungen, Trigger usw. kopiert werden.

77
Aaron Bertrand
select * into newtable from oldtable
17
Sonam