Tabell verdsatte funksjoner er en type funksjoner i SQL Server som returnerer data som tabeller. Når du utfører sammenføyninger i SQL Server, kan du bli med rader fra to eller flere databasetabeller. Evnen til å bli med i en tabell med en utdata fra en tabell verdsatt funksjon støttes imidlertid ikke med mindre du bruker Apply Operators.
SQL Server støtter to Apply -operatører:
Cross Appe. Dette betyr at den henter radene i en tabell verdsatt funksjon og at tabellen bare blir med der det er kamper mellom de to tabellene.
Ytre Apply, vil bli med i postene til en tabell verdsatt funksjon, og den definerte tabellen, uavhengig av matchende rader.
For bedre å forstå hvordan du bruker kryss- og ytre anvendelsesoperatører i SQL Server, la oss ta en praktisk tilnærming.
Begynn med å opprette en testdatabase:
Opprett database ApplyDB;Bytt til CREATE -databasen:
Bruk ApplyDB;Deretter lager du tabeller og sett inn prøvedata som vist:
CreateTableUsersEksemplet spørringsskript lager to tabeller: brukere og innlegg. Innleggstabellen inneholder en bruker_id-kolonne som inneholder verdiene fra brukernes tabell som tillater en-til-mange-forhold i databasen.
SQL Server Cross Søk
La oss prøve en indre sammenføyning med en tabell verdsatt tabell som:
CreateFunction getPostsbyId (@id int)SQL Server vil returnere en feil som:
For å løse dette kan vi bruke Cross Apply som:
Velg u.Brukernavn, p.id, s.Post_name, p.pub_dateSpørringen ovenfor skal utføre vellykket og returnere resultatet som:
SQL Server Ytre Apply
Vi kan hente radene fra den fysiske og tabellen verdsatte funksjonen ved å bruke ytre Apply som vist:
Velg u.Brukernavn, p.id, s.Post_name, p.pub_dateDet resulterende spørringssettet er som vist:
Konklusjon
Denne artikkelen dekker hvordan du jobber med SQL Server Ytre og Cross Apply Operators for å bli med i en fysisk tabell og en tabell verdsatt funksjon.