Sammanfattning: i den här självstudien lär du dig hur du använder SQL Server INSERT INTO SELECT uttalande för att lägga till data från andra tabeller i en tabell.
Introduktion till SQL Server INSERT INTO SELECT-uttalande
För att infoga data från andra tabeller i en tabell använder du följande SQL Server INSERT INTO SELECT uttalande:
Code language: SQL (Structured Query Language) (sql)
I denna syntax infogar uttalandet rader som returneras av query i target_table.
query är valfri SELECT uttalande som hämtar data från andra tabeller. Den måste returnera de värden som motsvarar de kolumner som anges i column_list.
TOP -satsdelen är frivillig. Det låter dig ange antalet rader som returneras av frågan som ska infogas i måltabellen. Om du använder alternativet PERCENT infogas i stället procentsatsen av rader. Observera att det är en bästa praxis att alltid använda TOP -satsen med ORDER BY -satsen.
SQL Server INSERT IN VÄLJ exempel
Låt oss skapa en tabell med namnet addresses för demonstrationen:
1) Infoga alla rader från ett annat tabellexempel
Följande uttalande infogar alla adresser från customers tabellen i addresses tabellen:
För att verifiera infoga använder du följande fråga:
Code language: SQL (Structured Query Language) (sql)
Här är resultatet:
2) Infoga några rader från ett annat tabellexempel
Ibland behöver du bara infoga några rader från ett annat bord till ett bord. I det här fallet begränsar du antalet rader som returneras från frågan genom att använda villkor i WHERE -satsen.
Följande uttalande lägger till adresserna till de butiker som finns i Santa Cruz och Baldwin till addresses -tabellen:
SQL Servern returnerade följande meddelande som indikerar att två rader har infogats framgångsrikt.
Code language: SQL (Structured Query Language) (sql)
3) Sätt in den övre N på raderna
Först, du använder följande uttalande för att radera alla rader från addresses tabellen:
Code language: SQL (Structured Query Language) (sql)
För det andra, för att infoga toppen 10 kunder sorterade efter deras förnamn och efternamn, du använder uttalandet INSERT TOP INTO SELECT:
SQL Server returnerade följande meddelande som visar att tio rader har infogats framgångsrikt.
Code language: SQL (Structured Query Language) (sql)
4) Infoga den högsta procentsatsen av rader
Istället för att använda ett absolut antal rader, en infoga ett procentantal av rader i en tabell.
Trunka först alla rader från addresses -tabellen:
Code language: SQL (Structured Query Language) (sql)
För det andra, infoga de två bästa raderna från customers -tabellen sorterade efter förnamn och efternamn i addresses tabell:
SQL Server skickade följande meddelande som indikerar att 145 rader har infogats framgångsrikt.
Code language: SQL (Structured Query Language) (sql)
I den här självstudien, du har lärt mig hur man använder SQL Server INSERT INTO SELECT uttalande för att infoga rader från andra tabeller i en tabell.