Slouží částečně k programování SQL Serveru. Je to vlastně jakýsi skript - přesněji řečeno dávka - která je uložena přímo v databázi. Procedury mohou obsahovat vstupní parametry, výstupní parametry a návratové hodnoty. Programování se uskutečňuje pomocí jazyka T-SQL (Transact SQL). Ukážeme si tedy dvě jednoduché ukázky.
Příklad 1: Tato ukázka nám odstraní z tabulek vybrané auto včetně všech oprav, které na tomto autě byly provedeny.První řádek kódu nám zakládá novou proceduru s názvem OdstranneniAuta. Na dalším zadáváme název parametru jako číselnou proměnnou (typu integer). Následují SQL příkazy pro odstranění záznamů.
Chceme-li tuto proceduru odzkoušet musíme použít další z grafických nástrojů SQL Serveru - Query Analyzer. Ten spustíme buď přímo z nabídky Start -> Programy -> Microsoft SQL Server -> Query Analyzer, nebo klepnutím myši v prostředí Enterprise Manager na nabídku Tols a následným vybráním ze seznamu SQL Query Analyzer.
Příkaz EXEC spustí proceduru s názvem OdstraneniAuta a číslice 1 je vstupní proměnná pro číslo záznamu (autID) v tabulce Auta, který bude odstraněn.
Na začátku vytváříme proceduru s názvem KontrolaPoctuOprav. Dále pokračujeme výčtem názvů parametrů a jejich datových typů. Klíčové slovo OUTPUT udává, že jde o výstupní parametr. Pomocí SQL dotazu přiřadíme proměnné @ulozenyPocet hodnotu uloženou v tabulce Auta. Druhý SQL dotaz využívá funkci Count, která nám vrátí počet záznamů v tabulce Oprav vyhovující podmínce (WHERE). Tento počet přiřazujeme proměnné @skutecnyPocet. Nakonec obě proměnné porovnáváme a vypíšeme příslušnou odpověď.
Chceme-li nyní tuto proceduru vyzkoušet, musíme stejně jako u předchozího příkladu spustit grafický nástroj Query Analyzer. Z rozbalovacího seznamu opět vybereme příslušnou databázi a do textové části zapíšeme následující příkazy:
DECLARE @ulozenyPocet intProtože používáme výstupní parametry, musíme proměnné deklarovat nejen v uložené proceduře, ale také při jejím volání. Po spuštění proběhne kontrola záznamu s identifikačním číslem dva (autID) v tabulce Auta a zobrazí se výsledek.
DECLARE @skutecnyPocet int
EXEC KontrolaPoctuOprav 2, @ulozenyPocet OUTPUT, @skutecnyPocet OUTPUT