Ich muss eine temporäre Tabelle mit denselben Spalten erstellen und als permanente Tabelle eingeben. Was ist der beste Weg, um es zu tun? (Die permanente Tabelle enthält über 100 Spalten.)
dh
Normalerweise erstelle ich eine solche Tabelle.
DECLARE #TT TABLE(
member_id INT,
reason varchar(1),
record_status varchar(1) ,
record_type varchar(1)
)
Aber gibt es eine Möglichkeit, dies zu tun, ohne die Spaltennamen und den Typ zu erwähnen, aber den Namen einer anderen Tabelle mit den erforderlichen Spalten zu erwähnen?
sql
sql-server
Ananth
quelle
quelle
select into
Anweisung erstellt werden , die zukunftssicherer und weniger zeitaufwendig ist als die manuelle Eingabe des ddlselect into
in seiner Frage, und die meisten Antworten dort sind irrelevant.Antworten:
select top 0 * into #mytemptable from myrealtable
quelle
myrealtable
berechnete Spalten vorhanden sind, werden diese als echte Spalten in die temporäre Tabelle eingefügt, was im Allgemeinen unerwünscht ist.Mir ist klar, dass diese Frage extrem alt ist, aber für alle, die nach einer spezifischen Lösung für PostgreSQL suchen, ist es:
CREATE TEMP TABLE tmp_table AS SELECT * FROM original_table LIMIT 0;
Beachten Sie, dass die temporäre Tabelle in ein Schema wie pg_temp_3 eingefügt wird.
Dadurch wird eine temporäre Tabelle erstellt, die alle Spalten (ohne Indizes) und ohne Daten enthält. Abhängig von Ihren Anforderungen möchten Sie jedoch möglicherweise den Primärschlüssel löschen:
ALTER TABLE pg_temp_3.tmp_table DROP COLUMN primary_key;
Wenn die ursprüngliche Tabelle zunächst keine Daten enthält, können Sie die "LIMIT 0" weglassen.
quelle
Dies ist eine MySQL-spezifische Antwort, nicht sicher, wo es sonst funktioniert -
Sie können eine leere Tabelle mit denselben Spaltendefinitionen erstellen mit:
CREATE TEMPORARY TABLE temp_foo LIKE foo;
Und Sie können eine aufgefüllte Kopie einer vorhandenen Tabelle erstellen mit:
CREATE TEMPORARY TABLE temp_foo SELECT * FROM foo;
Und das Folgende funktioniert in Postgres; Leider scheinen die verschiedenen RDBMS hier nicht sehr konsistent zu sein:
CREATE TEMPORARY TABLE temp_foo AS SELECT * FROM foo;
quelle
Sortest one ...
select top 0 * into #temptable from mytable
Hinweis: Dadurch wird eine leere Kopie von temp erstellt, es wird jedoch kein Primärschlüssel erstellt
quelle
select * into #temptable from tablename where 1<>1
quelle
Klonen Sie die temporäre Tabellenstruktur in eine neue physische Tabelle in SQL Server
Wir werden sehen, wie die temporäre Tabellenstruktur in eine neue physische Tabelle in SQL Server geklont wird. Dies gilt sowohl für Azure SQL-Datenbank als auch für lokale Datenbanken.
Demo-SQL-Skript
IF OBJECT_ID('TempDB..#TempTable') IS NOT NULL DROP TABLE #TempTable; SELECT 1 AS ID,'Arul' AS Names INTO #TempTable; SELECT * FROM #TempTable;
METHODE 1
SELECT * INTO TempTable1 FROM #TempTable WHERE 1=0; EXEC SP_HELP TempTable1;
Methode 2
SELECT TOP 0 * INTO TempTable1 FROM #TempTable; EXEC SP_HELP TempTable1;
quelle