Збережені процедури

Написання функцій і збережених процедур у SQL Server

Meghan Kwartler

IT Consultant

Що таке збережена процедура?

Що це?

Процедури, які

  • Приймають вхідні параметри
  • Виконують дії (EXECUTE SELECT, INSERT, UPDATE, DELETE та інші оператори SP)
  • Повертають статус (успіх або помилка)
  • Повертають вихідні параметри
Написання функцій і збережених процедур у SQL Server

Навіщо використовувати збережені процедури?

Навіщо?

  • Можуть зменшити час виконання
  • Можуть зменшити мережевий трафік
  • Дають змогу модульно програмувати
  • Підвищують безпеку
Написання функцій і збережених процедур у SQL Server

У чому різниця?

UDF

  • Має повертати значення
    • Дозволені табличні
  • Можна виконувати вбудований SELECT
  • Немає вихідних параметрів
  • Немає INSERT, UPDATE, DELETE
  • Не може виконувати SP
  • Немає обробки помилок

SP

  • Повернення значення не обов'язкове
    • Табличні не підтримуються
  • Не можна вбудувати в SELECT для виконання
  • Повертає вихідні параметри й статус
  • Дозволені INSERT, UPDATE, DELETE
  • Може виконувати функції та SP
  • Обробка помилок через TRY...CATCH
Написання функцій і збережених процедур у SQL Server

CREATE PROCEDURE з параметром OUTPUT

-- Перші чотири рядки коду
-- Ім'я SP має бути унікальним 
CREATE PROCEDURE dbo.cuspGetRideHrsOneDay 
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
.......
Написання функцій і збережених процедур у SQL Server

CREATE PROCEDURE з параметром OUTPUT

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;
Написання функцій і збережених процедур у SQL Server

Вихідні параметри vs. повернені значення

Вихідні параметри

  • Можуть бути будь-якого типу даних
  • У SP можна оголошувати кілька
  • Не можуть бути табличними параметрами

Повернене значення

  • Для позначення успіху чи помилки
  • Лише цілочисельний тип
  • 0 означає успіх, ненульове — помилку
Написання функцій і збережених процедур у SQL Server

Ви готові до CREATE PROCEDURE!

Написання функцій і збережених процедур у SQL Server

Preparing Video For Download...