Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

T-SQL

Termin Definicja
T-SQL

T-SQL to rozszerzenie standardu SQL stosowane przez Microsoft w SQL Server, dodające m.in. zmienne i sterowanie przepływem.

T-SQL jako język Transact-SQL w Microsoft SQL Server

T-SQL, czyli Transact-SQL, jest językiem używanym do pracy z bazami danych Microsoft SQL Server. Rozszerza podstawowe możliwości języka SQL o elementy potrzebne do tworzenia bardziej rozbudowanej logiki wykonywanej po stronie silnika bazy danych. Oprócz zapytań SELECT, INSERT, UPDATE i DELETE pozwala między innymi deklarować zmienne, definiować warunki, wykonywać pętle, obsługiwać błędy, sterować transakcjami oraz tworzyć procedury składowane, wyzwalacze i funkcje użytkownika.

Ważne jest rozróżnienie między SQL jako językiem zapytań a T-SQL jako konkretną implementacją rozszerzoną przez Microsoft. Kod T-SQL jest przeznaczony przede wszystkim dla SQL Server oraz usług korzystających z jego mechanizmów, dlatego składnia i zachowanie poszczególnych instrukcji nie powinny być automatycznie utożsamiane z rozwiązaniami stosowanymi w innych silnikach baz danych. Dotyczy to zwłaszcza typów danych, obsługi błędów, funkcji systemowych, procedur składowanych i poleceń administracyjnych.

Zmienne, warunki i sterowanie wykonaniem instrukcji

Jedną z podstawowych cech T-SQL jest możliwość deklarowania zmiennych lokalnych za pomocą instrukcji DECLARE. Nazwy zmiennych lokalnych rozpoczynają się od znaku @, na przykład DECLARE @liczba INT. Wartość można przypisać instrukcją SET albo w określonych przypadkach za pomocą SELECT. Typ zmiennej musi odpowiadać typom danych obsługiwanym przez SQL Server, takim jak int, decimal, date, datetime2, nvarchar czy varbinary.

Do warunkowego wykonywania kodu służy konstrukcja IF...ELSE, a do powtarzania instrukcji — WHILE. W pętli można używać słów kluczowych BREAK i CONTINUE. T-SQL udostępnia również konstrukcję BEGIN...END, która grupuje wiele instrukcji w jeden blok, oraz RETURN, służące do zakończenia wykonywania procedury lub zwrócenia wartości całkowitej. Instrukcja GOTO umożliwia przejście do oznaczonej etykietą części kodu, ale jej użycie utrudnia analizę przepływu wykonania, dlatego w czytelnym kodzie zwykle preferuje się warunki, procedury i kontrolowane bloki instrukcji.

Procedury, transakcje i obsługa błędów w T-SQL

T-SQL pozwala definiować procedury składowane, czyli nazwane moduły przechowywane w bazie danych i wykonywane przez SQL Server. Procedura może przyjmować parametry wejściowe, zwracać zestawy wyników oraz ustawiać wartość parametru wyjściowego. Funkcja użytkownika także może zawierać logikę T-SQL, jednak obowiązują ją ograniczenia określone dla funkcji SQL Server. Wyzwalacze są uruchamiane automatycznie w reakcji na określone operacje na obiektach bazy danych, dlatego ich działanie powinno być analizowane razem z instrukcją, która je wywołuje.

Transakcje w T-SQL są obsługiwane między innymi przez BEGIN TRANSACTION, COMMIT TRANSACTION i ROLLBACK TRANSACTION. Pozwalają traktować grupę operacji jako logiczną całość. Do obsługi wielu błędów wykonania służy konstrukcja BEGIN TRY...END TRY połączona bezpośrednio z blokiem BEGIN CATCH...END CATCH. W bloku CATCH można odczytać informacje za pomocą funkcji takich jak ERROR_NUMBER(), ERROR_MESSAGE(), ERROR_LINE() i ERROR_PROCEDURE(). Przy pracy z transakcją istotna jest także funkcja XACT_STATE(), ponieważ po wystąpieniu błędu transakcja może być niezatwierdzalna i wymagać wycofania.

Rozpoznawanie problemów w kodzie T-SQL

Analiza problemu z T-SQL wymaga odróżnienia błędu składni, błędu wykonania, nieprawidłowych danych i problemu z samym środowiskiem SQL Server. Błąd składni może uniemożliwić uruchomienie całego fragmentu kodu, natomiast błąd wykonania może pojawić się dopiero dla konkretnego zestawu danych, na przykład przy naruszeniu ograniczenia integralności, dzieleniu przez zero albo konwersji tekstu na niezgodny typ. Nie każdy komunikat zostanie przechwycony przez TRY...CATCH; konstrukcja ta nie obejmuje między innymi części błędów kompilacji, przerwania połączenia przez klienta oraz niektórych błędów o wysokim poziomie ważności.

Podczas diagnostyki należy sprawdzić pełny komunikat SQL Server, nazwę procedury lub wyzwalacza, numer wiersza, parametry wejściowe, typy danych oraz kolejność wykonywanych operacji. Warto także zweryfikować, czy kod jest uruchamiany w odpowiedniej bazie i w odpowiednim kontekście uprawnień. Polecenie GO, często widoczne w skryptach T-SQL, nie jest instrukcją wykonywaną przez silnik SQL Server; jest separatorem partii rozpoznawanym przez wybrane narzędzia klienckie, takie jak SQL Server Management Studio i sqlcmd. Problemy z T-SQL mogą więc wynikać zarówno z samego kodu, jak i z narzędzia, połączenia, konfiguracji lub danych użytych podczas wykonania.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę