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.