Hvordan bruke SQL Server Computert Column

Hvordan bruke SQL Server Computert Column
En beregnet kolonne er en virtuell kolonne hvis verdi er et resultat av et uttrykk som hovedsakelig bruker andre data lagret i andre kolonner. En beregnet kolonne er en virtuell kolonne som betyr at SQL Server faktisk ikke lagrer den fysisk på et bord. I stedet beregnes verdien av en beregnet kolonne når dataene blir spurt. Du kan imidlertid lagre det fysisk ved å spesifisere den vedvarende parameteren.

Denne guiden vil gi deg det vesentlige ved å opprette og bruke beregnede kolonner i SQL Server.

Før vi dykker ned i et praktisk eksempel og bruker beregnede kolonner, er det noen få viktige punkter å merke seg.

  1. En beregnet kolonne kan ikke inneholde som standard, ikke null eller utenlandske nøkkelbegrensninger med mindre kolonnen er satt til vedvarende.
  2. Du kan ikke bruke en beregnet kolonne på en innsats- eller oppdateringsuttalelser.

SQL Server Computed Column -bruk

For bedre å forstå hvordan du bruker SQL Server -beregnede kolonner, vil vi bruke et praktisk eksempel.

Begynn med å lage en eksempeldata som vist i spørsmålene nedenfor:

Opprette databasesalg_database;
Bruk Sales_Database;
Lag bordsalg (
id int identitet (1,1) ikke null primærnøkkel,
produktnavn varchar (50),
pris penger,
Mengde int
);
Sett inn salg (produktnavn, pris, mengde)
Verdier ('iPhone Charger', $ 9.99, 10),
('Google Chromecast', $ 59.25, 5),
('PlayStation DualSense Wireless Controller', $ 69.00, 100),
('Xbox Series S', $ 322.00, 3),
('Oculus Quest 2', $ 299.50, 7),
('Netgear Nighthawk', $ 236.30, 40),
('REDRAGON S101', $ 35.98, 100),
('Star Wars actionfigur', $ 17.50, 10),
('Mario Kart 8 Deluxe', $ 57.00, 5);

Når vi har prøvedataene, kan vi fortsette.

Lag beregnet kolonne: T-SQL

Å opprette en beregnet kolonne i SQL Server er grei. Bruk CREATE TABLE eller ALTER TABLE -kommandoen for å legge til en beregnet kolonne.

For eksempel kan vi lage en beregnet kolonne som beregner den totale prisen på varene basert på prisen og mengden.

Tenk på eksemplet som er vist nedenfor:

Endre bordsalg
Legg til total_price som pris * mengde;

Ovennevnte spørring oppretter en ny kolonne basert på verdien av prisen * kvantitetskolonner. Vi kan spørre den nye tabellen som:

Velg * fra salg;

Det resulterende tabellen er som vist:

Legg merke til verdien av total_price -kolonnen er basert på verdiene for pris og kvantitetskolonner.

Når vi oppdaterer verdiene på en av kolonnen, gjenspeiler verdien i den beregnede kolonnen endringene som vist:

Oppdater salgssett Mengde = 200
Hvor id = 3;

Spørringen ovenfor oppdaterer mengden av rad nummer 3 til 200.

Hvis vi spør om dataene igjen, bør vi se total_price oppdatert for å gjenspeile endringene som:

Velg * fra salg;

For å lage en beregnet under oppretting av tabellen, kan vi spesifisere kolonnen ved å bruke AS -nøkkelordet etterfulgt av formelen som skal brukes til å beregne det resulterende settet.

Drop Table Sales;
-- gjenskape tabell og sette inn prøvedata på nytt med ny beregnet kolonne
Lag bordsalg (
id int identitet (1,1) ikke null primærnøkkel,
produktnavn varchar (50),
pris penger,
Mengde int,
total_price som pris * mengde
);

Dette vil gjenskape tabellen med den nye beregnede kolonnen.

Opprett beregnet kolonne: SSMS

Du kan også opprette en beregnet kolonne ved hjelp av SQL Server Management Studio. I Object Explorer, utvid din måldatabase -> Tabeller -> Kolonner -> Ny kolonne.

Skriv inn kolonnenavnet og den aksepterte datatypen.

Utvid kategorien Kolonneegenskaper og velg beregnede kolonnespesifikasjoner. Angi formelen for kolonnen som vist:

For å bruke endringene, velg hovedverktøylinjen og klikk på Lagre ikonet:

Vedvarende beregnede kolonner

Hvis du fysisk vil lagre verdiene til en beregnet kolonne, kan du legge til den vedvarende egenskapen under kolonnens oppretting.

For eksempel legger spørringen nedenfor en vedvarende beregnet kolonne for å beregne skatten på produktene.

Endre tabellsalg legge til skatt som (1.6 * mengde * pris) vedvarte;

Det resulterende tabellen er som vist:

Merk, du kan ikke bruke verdien til en annen beregnet kolonne i en beregnet kolonne. For eksempel, hvis du prøver å angi verdien av skattekolonnen som 1.6 * Total_price, SQL Server vil returnere en feil.

Vis beregnede kolonner: T-SQL

For å vise beregnede kolonner i en bestemt database, bruk spørringen som vist nedenfor:

Velg * fra SYS.Computed_columns;

Spørringen skal returnere detaljene i de beregnede kolonnene i den valgte databasen.

Konklusjon

I denne artikkelen forsto du hvordan du oppretter og bruker beregnede kolonner i SQL Server. Sjekk dokumentasjonen for å lære mer.