niedziela, 31 grudnia 2017

[PL] SQL Server 2014 SP2 - kolumny wyliczane (computed columns)

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:
  • 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

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