sql >> Databasteknik >  >> RDS >> Sqlserver

Infoga alla värden i en tabell i en annan tabell i SQL

Insert-satsen har faktiskt en syntax för att göra just det. Det är mycket enklare om du anger kolumnnamnen istället för att välja "*":

INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...

Jag borde förtydliga detta eftersom det här inlägget av någon anledning får några nedröster.

Syntaxen INSERT INTO ... SELECT FROM är för när tabellen du infogar i ("new_table" i mitt exempel ovan) redan existerar. Som andra har sagt, är syntaxen SELECT ... INTO för när du vill skapa den nya tabellen som en del av kommandot.

Du angav inte om den nya tabellen måste skapas som en del av kommandot, så INSERT INTO ... SELECT FROM borde fungera bra om din destinationstabell redan finns.



  1. Tre bord går med andra än INNER JOIN

  2. Oväntad Clustered Index Fragmentation

  3. Är det möjligt att göra en rekursiv SQL-fråga?

  4. PostgreSQL:FEL:42601:en kolumndefinitionslista krävs för funktioner som returnerar post