Lagrade procedurer

Skriva funktioner och lagrade procedurer i SQL Server

Meghan Kwartler

IT Consultant

Vad är en lagrad procedur?

Vad?

Rutiner som

  • Tar emot indataparametrar
  • Utför åtgärder (EXECUTE SELECT, INSERT, UPDATE, DELETE och andra SP-satser)
  • Returnerar status (lyckat eller misslyckat)
  • Returnerar utdataparametrar
Skriva funktioner och lagrade procedurer i SQL Server

Varför använda lagrade procedurer?

Varför?

  • Kan minska körningstiden
  • Kan minska nätverkstrafiken
  • Möjliggör modulär programmering
  • Förbättrad säkerhet
Skriva funktioner och lagrade procedurer i SQL Server

Vad är skillnaden?

UDF:er

  • Måste returnera ett värde
    • Tabellvärden tillåtna
  • Inbäddad SELECT kan köras
  • Inga utdataparametrar
  • Ingen INSERT, UPDATE, DELETE
  • Kan inte köra SP:er
  • Ingen felhantering

SP:er

  • Returvärde är valfritt
    • Inga tabellvärden
  • Kan inte bäddas in i SELECT för körning
  • Returnerar utdataparametrar och status
  • INSERT, UPDATE, DELETE tillåtna
  • Kan köra funktioner och SP:er
  • Felhantering med TRY...CATCH
Skriva funktioner och lagrade procedurer i SQL Server

CREATE PROCEDURE med OUTPUT-parameter

-- First four lines of code
-- SP name must be unique 
CREATE PROCEDURE dbo.cuspGetRideHrsOneDay 
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
.......
Skriva funktioner och lagrade procedurer i SQL Server

CREATE PROCEDURE med OUTPUT-parameter

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;
Skriva funktioner och lagrade procedurer i SQL Server

Utdataparametrar vs. returvärden

Utdataparametrar

  • Kan vara vilken datatyp som helst
  • Flera kan deklareras per SP
  • Kan inte vara tabellvärdesparametrar

Returvärde

  • Används för att ange lyckat eller misslyckat
  • Endast heltalsdatatyp
  • 0 anger lyckat och ett annat värde anger misslyckat
Skriva funktioner och lagrade procedurer i SQL Server

Nu är du redo att använda CREATE PROCEDURE!

Skriva funktioner och lagrade procedurer i SQL Server

Preparing Video For Download...