SQL Server pozwala na tworzenie kolumn nazywanych computed columns, czyli - w wolnym tłumaczeniu - kolumn wyliczanych. Jak to działa w praktyce?
Na potrzeby szkoleniowe, utwórzmy przykładową tabelę składającą się z trzech kolumn:
Na potrzeby szkoleniowe, utwórzmy przykładową tabelę składającą się z trzech kolumn:
- CENA_W_ZL - przeznaczoną na cenę w polskich złotych
- KURS_DOLARA_W_ZL - zawierającą kurs dolara podany w polskich złotych
- CENA_W_DOLARACH - jest to kolumna typu computed columns, której wartość jest generowana automatycznie poprzez mnożenie wartości znajdujących się w dwóch wcześniej wspomnianych kolumnach
USE tempdb
go
CREATE TABLE [dbo].[CENY] (
id int identity(1,1) not null primary key,
CENA_W_ZL smallmoney,
KURS_DOLARA_W_ZL smallmoney,
CENA_W_DOLARACH AS [CENA_W_ZL] * [KURS_DOLARA_W_ZL]
)
Następnie wstawmy przykładowy wiersz do tabeli i sprawdzamy jej zawartość:
INSERT INTO [dbo].[CENY] (CENA_W_ZL, KURS_DOLARA_W_ZL)
VALUES (100.20,3.60);
SELECT * FROM DBO.CENY
INSERT INTO [dbo].[CENY] (CENA_W_ZL, KURS_DOLARA_W_ZL)
VALUES (100.20,3.60);
SELECT * FROM DBO.CENY
Naszym oczom powinna ukazać się obliczona automatycznie zawartość kolumny CENA_W_DOLARACH jako wynik mnożenia zawartości kolumny CENA_W_ZL i KURS_DOLARA_W_ZL.
W przedstawionym powyżej przykładzie wartość kolumny CENA_W_DOLARACH jest za każdym razem wyliczana w momencie, kiedy chcemy poznać jej wartość - czyli wartość nie znajduje się zapisana na stałe w bazie danych. Jeżeli chcielibyśmy zapisać wartość kolumny wyliczanej w bazie danych, w definicji tabeli, przy tego typu kolumnie powinniśmy umieścić PERSISTED.
Brak komentarzy:
Prześlij komentarz