Основы хранимых процедур и функций

Хранимые процедуры и функции в SQL позволяют инкапсулировать набор SQL-запросов и логики в базе данных, чтобы их можно было повторно использовать и улучшить производительность за счет уменьшения количества сетевых запросов. Вот основы и примеры для понимания их работы.

Хранимые процедуры (Stored Procedures)

Определение: Хранимая процедура — это набор SQL-запросов, которые можно выполнить по запросу.

Пример создания хранимой процедуры:

CREATE PROCEDURE GetEmployeeByID
    @EmployeeID INT
AS
BEGIN
    SELECT * FROM Employees
    WHERE EmployeeID = @EmployeeID;
END;

Вызов хранимой процедуры:

EXEC GetEmployeeByID @EmployeeID = 1;

Функции (Functions)

Определение: Функция в SQL возвращает одно значение или набор значений и может быть использована в запросах, как обычные выражения.

Пример создания функции:

CREATE FUNCTION GetEmployeeFullName
    (@EmployeeID INT)
RETURNS NVARCHAR(100)
AS
BEGIN
    DECLARE @FullName NVARCHAR(100);

    SELECT @FullName = FirstName + ' ' + LastName
    FROM Employees
    WHERE EmployeeID = @EmployeeID;

    RETURN @FullName;
END;

Использование функции в запросе:

SELECT dbo.GetEmployeeFullName(1) AS EmployeeFullName;

Основные отличия

  1. Возвращаемое значение:

    • Хранимые процедуры не возвращают значения напрямую, они могут выполнять изменения в базе данных.

    • Функции возвращают значения и могут быть использованы в выражениях.

  2. Использование в запросах:

    • Хранимые процедуры вызываются с помощью EXEC или CALL.

    • Функции могут быть использованы в SELECT, WHERE, и других SQL-запросах.

  3. Влияние на базу данных:

    • Хранимые процедуры могут изменять данные в базе данных.

    • Функции предназначены для выполнения вычислений и возвращения данных без изменения состояния базы данных.

Эти инструменты помогают улучшить организацию кода, упростить его сопровождение и повысить производительность базы данных.

Last updated