Uložené procedury

Psaní funkcí a uložených procedur v SQL Serveru

Meghan Kwartler

IT Consultant

Co je uložená procedura?

Co je to?

Rutiny, které

  • Přijímají vstupní parametry
  • Provádějí akce (EXECUTE SELECT, INSERT, UPDATE, DELETE a další příkazy SP)
  • Vrací stav (úspěch nebo selhání)
  • Vrací výstupní parametry
Psaní funkcí a uložených procedur v SQL Serveru

Proč používat uložené procedury?

Proč?

  • Zkracují dobu provádění
  • Snižují síťový provoz
  • Umožňují modulární programování
  • Zvyšují bezpečnost
Psaní funkcí a uložených procedur v SQL Serveru

Jaký je rozdíl?

UDF

  • Musí vracet hodnotu
    • Tabulkové hodnoty povoleny
  • Vložené SELECT povoleno
  • Žádné výstupní parametry
  • Žádné INSERT, UPDATE, DELETE
  • Nemohou volat SP
  • Bez ošetření chyb

SP

  • Návratová hodnota volitelná
    • Bez tabulkových hodnot
  • Nelze vložit do SELECT
  • Vrací výstupní parametry a stav
  • INSERT, UPDATE, DELETE povoleno
  • Mohou volat funkce i SP
  • Ošetření chyb pomocí TRY...CATCH
Psaní funkcí a uložených procedur v SQL Serveru

CREATE PROCEDURE s výstupním parametrem

-- First four lines of code
-- SP name must be unique 
CREATE PROCEDURE dbo.cuspGetRideHrsOneDay 
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
.......
Psaní funkcí a uložených procedur v SQL Serveru

CREATE PROCEDURE s výstupním parametrem

CREATE PROCEDURE dbo.cuspGetRideHrsOneDay
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
SET NOCOUNT ON
BEGIN
SELECT 
  @RideHrsOut = SUM(
    DATEDIFF(second, PickupDate, DropoffDate)
  )/ 3600
FROM YellowTripData
WHERE CONVERT(date, PickupDate) = @DateParm
RETURN
END;
Psaní funkcí a uložených procedur v SQL Serveru

Výstupní parametry vs. návratové hodnoty

Výstupní parametry

  • Libovolný datový typ
  • Více parametrů na SP
  • Nemohou být tabulkové parametry

Návratová hodnota

  • Indikuje úspěch nebo selhání
  • Pouze datový typ integer
  • 0 = úspěch, nenulová hodnota = selhání
Psaní funkcí a uložených procedur v SQL Serveru

Jste připraveni vytvářet procedury!

Psaní funkcí a uložených procedur v SQL Serveru

Preparing Video For Download...