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

Skryptowanie zadań

Termin Definicja
Skryptowanie zadań

Skryptowanie zadań to zapisanie definicji zadania w postaci polecenia T-SQL możliwego do ponownego wykonania.

Skryptowanie zadań jako zapis polecenia T-SQL

Skryptowanie zadań polega na zapisaniu czynności wykonywanej w aparacie bazy danych jako instrukcji języka Transact-SQL, czyli T-SQL. Tak przygotowane polecenie można uruchomić ponownie bez ręcznego odtwarzania kolejnych operacji w interfejsie graficznym. Skrypt może zawierać pojedynczą instrukcję albo serię instrukcji wykonywanych w określonej kolejności. W środowisku Microsoft SQL Server używa się w tym celu między innymi poleceń CREATE, ALTER, DROP, INSERT, UPDATE i DELETE, zależnie od rodzaju definiowanego zadania.

Skrypt nie jest jedynie opisem czynności przeznaczonym do przeczytania przez administratora. Jest tekstową reprezentacją poleceń, którą można zapisać w pliku, przechowywać w systemie kontroli wersji albo uruchomić w SQL Server Management Studio. Przed wykonaniem należy ustalić, do jakiej bazy danych odnosi się skrypt, jakie obiekty już istnieją oraz jakie uprawnienia są potrzebne do jego realizacji. Ta sama instrukcja może dać inny wynik, jeśli zostanie uruchomiona w niewłaściwym kontekście bazy lub na środowisku o innej strukturze.

Budowa powtarzalnego skryptu w SQL Server

Podstawą poprawnego skryptowania jest jednoznaczne wskazanie obiektów, na których ma działać zadanie. W praktyce warto używać pełnych nazw zawierających schemat, na przykład dbo.NazwaTabeli, zamiast polegać na domyślnym schemacie użytkownika. Instrukcja USE może zmienić bieżący kontekst bazy danych, jednak sama nie zabezpiecza przed uruchomieniem skryptu na niewłaściwej instancji. Dlatego istotne jest także sprawdzenie nazwy serwera, nazwy bazy i środowiska, w którym wykonywane są polecenia.

Skrypt przeznaczony do wielokrotnego użycia powinien uwzględniać stan początkowy obiektów. Przykładowo, przed utworzeniem tabeli można sprawdzić jej istnienie za pomocą warunku opartego na katalogu systemowym lub funkcji obiektowej, a następnie zdecydować, czy obiekt utworzyć, zmodyfikować, czy pominąć operację. W nowszych wersjach SQL Server dostępne są także konstrukcje takie jak CREATE OR ALTER dla wybranych obiektów programowalnych. Nie każda instrukcja jest jednak bezwarunkowo idempotentna, czyli bezpieczna przy wielokrotnym wykonaniu. Wielokrotne użycie INSERT może dodać duplikaty, a powtórzenie ALTER TABLE może zakończyć się błędem, jeśli zmiana została już zastosowana.

Ważną częścią skryptu są parametry i wartości wejściowe. Zamiast wpisywać te same dane bezpośrednio w treści polecenia, można użyć zmiennych T-SQL, na przykład DECLARE i SET, a następnie wykorzystać je w instrukcji. Ułatwia to dostosowanie zadania do konkretnej daty, identyfikatora lub zakresu danych, ale nie zastępuje kontroli typów oraz walidacji wartości. Szczególną uwagę trzeba zwrócić na konwersje dat, liczb i tekstów, ponieważ niejawna konwersja może zależeć od ustawień językowych albo formatu daty przyjętego przez sesję.

Transakcje, kolejność operacji i obsługa błędów

Jeżeli zadanie składa się z kilku powiązanych zmian, jego skrypt może korzystać z transakcji. Instrukcje BEGIN TRANSACTION, COMMIT i ROLLBACK pozwalają określić, czy wszystkie operacje mają zostać zatwierdzone razem, czy też całość ma zostać wycofana po wystąpieniu problemu. W SQL Server obsługę błędów można budować z użyciem konstrukcji TRY...CATCH. W bloku CATCH można sprawdzić między innymi numer błędu, komunikat i stan transakcji, a następnie wykonać wycofanie lub przekazać błąd dalej za pomocą THROW.

Transakcja nie gwarantuje automatycznie poprawności logicznej zadania. Skrypt może wykonać wszystkie instrukcje bez błędu składniowego, a mimo to zmienić niewłaściwe rekordy, jeśli warunek WHERE jest zbyt szeroki albo odwołanie do klucza jest niejednoznaczne. Przed instrukcjami modyfikującymi dane warto uruchomić odpowiadające im zapytanie SELECT i sprawdzić liczbę oraz zakres zwracanych wierszy. Przy operacjach usuwania lub aktualizacji przydatne są także warunki kontrolne, ograniczenia klucza obcego i ograniczenia unikatowości, które pomagają wykryć niespójność danych.

Kolejność instrukcji ma znaczenie zarówno dla danych, jak i dla obiektów schematu. Tabela musi istnieć przed dodaniem do niej rekordów, kolumna musi być dostępna przed użyciem jej w zapytaniu, a zależne procedury, widoki lub wyzwalacze mogą wymagać wcześniejszego utworzenia albo zmiany. Przy zmianach struktury trzeba uwzględnić indeksy, więzy integralności i zależności między obiektami. Skrypt opisujący zadanie powinien więc odzwierciedlać rzeczywisty porządek zależności, a nie tylko kolejność czynności wykonywanych wcześniej ręcznie.

Weryfikacja skryptu przed ponownym uruchomieniem

Przed wykonaniem skryptu T-SQL należy sprawdzić jego składnię oraz zakres działania. W SQL Server Management Studio można użyć analizy składni, ale pomyślne przejście takiej kontroli nie potwierdza poprawności biznesowej polecenia. Dodatkowo należy przejrzeć instrukcje wskazujące bazę, schemat i obiekty, zweryfikować parametry oraz ocenić, czy skrypt nie zawiera operacji destrukcyjnych. Przydatne jest testowanie na kopii danych lub środowisku testowym, zwłaszcza gdy zadanie modyfikuje strukturę tabel albo większą liczbę rekordów.

Wynik skryptu powinien być możliwy do potwierdzenia. Można kontrolować liczbę zmienionych wierszy, sprawdzać istnienie utworzonych obiektów, porównywać wartości przed i po operacji oraz analizować komunikaty zwracane przez silnik. Dla zadań wykonywanych cyklicznie warto zapisać treść użytego skryptu razem z informacją o wersji schematu i wymaganym kontekście uruchomienia. Ułatwia to odtworzenie czynności po awarii, porównanie zmian między środowiskami i ustalenie, która wersja polecenia została wykonana.

Problemy ze skryptowaniem mogą wynikać z błędnej składni, braku uprawnień, niezgodności nazw obiektów, blokad, konfliktu typów danych albo uruchomienia polecenia na innej bazie niż zamierzona. Diagnostyka powinna obejmować treść skryptu, komunikat błędu, kolejność instrukcji i aktualny stan obiektów. W przypadku awarii laptopa lub komputera PC związanej z pracą narzędzi do tworzenia i uruchamiania skryptów można zlecić diagnostykę środowiska systemowego, sprawdzenie działania oprogramowania oraz ocenę poprawności konfiguracji stanowiska komputerowego.

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