Создание хранимой процедуры

В этом разделе описывается, как можно создать хранимую процедуру Transact-SQL в среде Среда SQL Server Management Studio с использованием инструкции Transact-SQL CREATE PROCEDURE.

  • Перед началом работы выполните следующие действия. Разрешения

  • Создание хранимой процедуры с использованием:  SQL Server Management Studio, Transact-SQL

Разрешения

Для выполнения этой инструкции требуется разрешение CREATE PROCEDURE в отношении базы данных и разрешение ALTER в отношении схемы, в которой создается процедура.

Создание хранимой процедуры

Можно использовать одно из следующего.

  • Среда SQL Server Management Studio

  • Transact-SQL

Использование среды SQL Server Management Studio

Создание процедуры в обозревателе объектов

  1. В обозревателе объектов подключитесь к экземпляру компонента Компонент Database Engine и разверните его.

  2. Последовательно разверните узел Базы данных, базу данных AdventureWorks2012 и узел Программирование.

  3. Щелкните правой кнопкой мыши элемент Хранимые процедуры и выберите пункт Создать хранимую процедуру.

  4. В меню Запрос выберите пункт Задание значений для параметров шаблона.

  5. В диалоговом окне Задание значений для параметров шаблона введите для показанных параметров следующие значения.

    Параметр

    Значение

    Автор

    Your name

    Дата создания

    Today's date

    Описание

    Возвращает данные о сотрудниках.

    Procedure_name

    HumanResources.uspGetEmployeesTest

    @Param1

    @LastName

    @Datatype_For_Param1

    nvarchar(50)

    Default_Value_For_Param1

    NULL

    @Param2

    @FirstName

    @Datatype_For_Param2

    nvarchar(50)

    Default_Value_For_Param2

    NULL

  6. Нажмите кнопку ОК.

  7. В редакторе запросов замените инструкцию SELECT следующей инструкцией:

    SELECT FirstName, LastName, Department
    FROM HumanResources.vEmployeeDepartmentHistory
    WHERE FirstName = @FirstName AND LastName = @LastName
        AND EndDate IS NULL;
    
  8. Для проверки синтаксиса выберите пункт Синтаксический анализ в меню Запрос. Если возвращается сообщение об ошибке, сравните инструкции с приведенными выше и при необходимости внесите исправления.

  9. Чтобы создать процедуру, в меню Запрос выберите пункт Выполнить. Процедура создается как объект в базе данных.

  10. Чтобы увидеть процедуру в обозревателе объектов, щелкните правой кнопкой мыши элемент Хранимые процедуры и выберите пункт Обновить.

  11. Чтобы выполнить процедуру, в обозревателе объектов щелкните правой кнопкой мыши имя хранимой процедуры HumanResources.uspGetEmployeesTest и выберите пункт Выполнение хранимой процедуры.

  12. В окне Выполнение процедуры введите Margheim в качестве значения для параметра @LastName и Diane в качестве значения для параметра @FirstName.

ПредупреждениеВнимание!

Проверяйте все данные, вводимые пользователем. Не включайте их в сценарий, не выполнив проверку. Никогда не выполняйте команду, построенную на основании непроверенных пользовательских входных данных.

[В начало]

Использование Transact-SQL

Создание процедуры в редакторе запросов

  1. В обозревателе объектов установите соединение с экземпляром компонента Компонент Database Engine.

  2. Выберите в меню Файл пункт Создать запрос.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В данном примере создается та же хранимая процедура, что и раньше, но с другим именем процедуры.

    USE AdventureWorks2012;
    GO
    CREATE PROCEDURE HumanResources.uspGetEmployeesTest2 
        @LastName nvarchar(50), 
        @FirstName nvarchar(50) 
    AS 
    
        SET NOCOUNT ON;
        SELECT FirstName, LastName, Department
        FROM HumanResources.vEmployeeDepartmentHistory
        WHERE FirstName = @FirstName AND LastName = @LastName
        AND EndDate IS NULL;
    GO
    
  4. Чтобы выполнить процедуру, скопируйте следующий пример в окно создаваемого запроса и нажмите кнопку Выполнить. Показаны различные методы задания значений параметров.

    EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman', N'Pilar';
    -- Or
    EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman', @FirstName = N'Pilar';
    GO
    -- Or
    EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar', @LastName = N'Ackerman';
    GO
    

[В начало]

См. также

Справочник

CREATE PROCEDURE (Transact-SQL)