Resume: i denne vejledning lærer du, hvordan du bruger SQL Server INSERT INTO SELECT sætning for at tilføje data fra andre tabeller til en tabel.
Introduktion til SQL Server INSERT INTO SELECT-sætning
For at indsætte data fra andre tabeller i en tabel bruger du følgende SQL Server INSERT INTO SELECT udsagn:
Code language: SQL (Structured Query Language) (sql)
I denne syntaks indsætter udsagnet rækker returneret af query i target_table.
query er en hvilken som helst gyldig SELECT udsagn, der henter data fra andre tabeller. Den skal returnere de værdier, der svarer til de kolonner, der er angivet i column_list.
TOP -delens del er valgfri. Det giver dig mulighed for at specificere antallet af rækker, der returneres af den forespørgsel, der skal indsættes i måltabellen. Hvis du bruger indstillingen PERCENT, indsætter udsagnet i stedet procentdelen af rækker. Bemærk, at det er en god praksis at altid bruge TOP -klausulen med ORDER BY -klausulen.
SQL Server INSERT INTO VÆLG eksempler
Lad os oprette en tabel med navnet addresses til demonstrationen:
1) Indsæt alle rækker fra et andet tabeleksempel
Følgende udsagn indsætter alle adresser fra customers -tabellen i addresses -tabellen:
For at bekræfte indsætningen bruger du følgende forespørgsel:
Code language: SQL (Structured Query Language) (sql)
Her er resultatet:
2) Indsæt nogle rækker fra et andet tabeleksempel
Nogle gange skal du bare indsætte nogle rækker fra en anden tabel til en tabel. I dette tilfælde begrænser du antallet af rækker, der returneres fra forespørgslen ved hjælp af betingelser i WHERE -klausulen.
Følgende udsagn tilføjer adresserne til de gemte butikker i Santa Cruz og Baldwin til addresses -tabellen:
SQL Serveren returnerede følgende meddelelse, der angiver, at to rækker er indsat med succes.
Code language: SQL (Structured Query Language) (sql)
3) Indsæt det øverste N af rækker
Først, du bruger følgende udsagn til at slette alle rækker fra addresses -tabellen:
Code language: SQL (Structured Query Language) (sql)
For det andet for at indsætte toppen 10 kunder sorteret efter deres fornavne og efternavne, bruger du INSERT TOP INTO SELECT udsagn som følger:
SQL Server returnerede følgende meddelelse, der viser, at der er indsat ti rækker med succes.
Code language: SQL (Structured Query Language) (sql)
4) Indsæt den øverste procentdel af rækker
I stedet for at bruge et absolut antal rækker, kan du en indsæt et procent antal rækker i en tabel.
Afkort først alle rækker fra addresses -tabellen:
Code language: SQL (Structured Query Language) (sql)
For det andet skal du indsætte to øverste procent af rækker fra customers -tabellen sorteret efter fornavne og efternavne i addresses tabel:
SQL Server udsendte følgende meddelelse om, at 145 rækker er blevet indsat med succes.
Code language: SQL (Structured Query Language) (sql)
I denne vejledning, du har lært, hvordan man bruger SQL Server INSERT INTO SELECT -sætningen til at indsætte rækker fra andre tabeller i en tabel.