MS SQL SERVER Obliczenia przy tworzeniu tabel

MS SQL SERVER Obliczenia przy tworzeniu tabel
M3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

Witam,
chciałbym przy tworzeniu tabel od razu definiował jak ma być obliczana wartość wiersza w nim,
np. ilość gości * cena od osoby dla kolumny koszt wynajmu . Czy jest możliwe coś takiego ? Jeśli tak, to jak to zrobić ?

n0name_l
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2412
2

W sensie chcesz przy kazdym insercie wyliczac wartosc jakiegos pola na podstawie pewnej reguly, nie martwiac sie tym zupelnie w kodzie aplikacji, tylko zeby baza to robila?
Do takiego czegos mozesz uzyc wyzwalacza, na przyklad:

Kopiuj
CREATE TRIGGER uzupelnijTabelke
ON dbo.Mixer
INSTEAD OF INSERT
AS
	declare @id int;
	declare @iloscGosci int;
	declare @cenaOdOsoby int;
	declare @cenaWynajmu int;

	select @id = i.id from inserted i;
	select @iloscGosci = i.iloscGosci from inserted i;
	select @cenaOdOsoby = i.cenaOdOsoby from inserted i;
	select @cenaWynajmu = @iloscGosci * @cenaOdOsoby;

	insert into Mixer (id, iloscGosci, cenaOdOsoby, cenaWynajmu)
		values (@id, @iloscGosci, @cenaOdOsoby, @cenaWynajmu);
GO
Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
0

COMPUTED COLUMNS lub VIEW

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.