Wstęp do T-SQL – zmienne

By korzystać w T-SQL ze zmiennych należy najpierw je zadeklarować:

declare @zmienna typ;

Po słowie kluczowym następuje nazwa zmiennej ze znakiem @. Należy także zadeklarować typ zmiennej. W T-SQL mamy dostępne te same typy danych co są dostępne do przechowywania w SQL Server, istnieją także typy złożone (np typ tabelaryczny).

aby zadeklarować zmienną z ustaloną wartością początkową:

declare @liczba int=0;

Aby ustawić wartość zadeklarowanej zmiennej:

set @liczba = 1;

Aby zwrócić wartość zmiennej:

select @liczba;

możemy także wynik zapytania zwrócić do zmiennej:

select @liczba=liczba from tabela

Oczywiście zmienne możemy wykorzystać także do innych celów

select * from tabela where kol_1=@liczba

W przypadku zmiennych typu varchar należy zwrócić uwagę na to jaką długość deklarujemy, bynajmniej nie dlatego że Sql Server zwróci błąd w przypadku próby przypisania wartości o większej długości, on po prostu obetnie łańcuch. Jest to dość upierdliwe w przypadku

Niestety w T-SQL nie ma zmiennych typu rowtype, jest tylko typ table.

DECLARE @jakastabela TABLE
(
id int,
opis varchar(255)
)

do zmiennej typu tablicowego możemy się dodawać wiersze:


INSERT INTO @jakastabela (ID, opis)
SELECT 1,'jakis opis'

także w sposób tradycyjny:

INSERT INTO @jakastabela (ID, opis) values (1,'jakis tam opis')

tak samo można usuwać oraz modyfikować wiersze.

Zmienne tabelaryczne różnią się od tabel(także tymczasowych), posiadają pewne ograniczenia (brak możliwości alter Table), pewnie niedogodności z indeksami(Nie można założyć indeksu nieklastrowanego przed klastrowanym).