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.