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

В этом разделе описывается, как можно создать хранимую процедуру Transact-SQLTransact-SQL в среде SQL Server Management StudioSQL Server Management Studio с использованием инструкции Transact-SQLTransact-SQL CREATE PROCEDURE.This topic describes how to create a Transact-SQLTransact-SQL stored procedure by using SQL Server Management StudioSQL Server Management Studio and by using the Transact-SQLTransact-SQL CREATE PROCEDURE statement.

PermissionsPermissions

Для выполнения этой инструкции требуется разрешение CREATE PROCEDURE в отношении базы данных и разрешение ALTER в отношении схемы, в которой создается процедура.Requires CREATE PROCEDURE permission in the database and ALTER permission on the schema in which the procedure is being created.

Создание хранимой процедурыHow to Create a Stored Procedure

Можно использовать один из следующих способов:You can use one of the following:

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

Создание процедуры в обозревателе объектовTo create a procedure in Object Explorer

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database EngineDatabase Engine и разверните его.In Object Explorer, connect to an instance of Компонент Database EngineDatabase Engine and then expand that instance.

  2. Последовательно разверните узел Базы данных, базу данных AdventureWorks2012AdventureWorks2012 и узел Программирование.Expand Databases, expand the AdventureWorks2012AdventureWorks2012 database, and then expand Programmability.

  3. Щелкните правой кнопкой мыши элемент Хранимые процедурыи выберите пункт Создать хранимую процедуру.Right-click Stored Procedures, and then click New Stored Procedure.

  4. В меню Запрос выберите пункт Указать значения для параметров шаблона.On the Query menu, click Specify Values for Template Parameters.

  5. В диалоговом окне Задание значений для параметров шаблона введите для показанных параметров следующие значения.In the Specify Values for Template Parameters dialog box, enter the following values for the parameters shown.

    ПараметрParameter ЗначениеValue
    АвторAuthor Ваше имяYour name
    Дата созданияCreate Date Сегодняшняя датаToday's date
    ОписаниеDescription Возвращает данные о сотрудниках.Returns employee data.
    Procedure_nameProcedure_name HumanResources.uspGetEmployeesTestHumanResources.uspGetEmployeesTest
    @Param1 @LastName
    @Datatype_For_Param1 nvarchar(50)nvarchar(50)
    Default_Value_For_Param1Default_Value_For_Param1 NULLNULL
    @Param2 @FirstName
    @Datatype_For_Param2 nvarchar(50)nvarchar(50)
    Default_Value_For_Param2Default_Value_For_Param2 NULLNULL
  6. Нажмите кнопку ОК.Click OK.

  7. В редакторе запросовзамените инструкцию SELECT следующей инструкцией:In the Query Editor, replace the SELECT statement with the following statement:

    SELECT FirstName, LastName, Department  
    FROM HumanResources.vEmployeeDepartmentHistory  
    WHERE FirstName = @FirstName AND LastName = @LastName  
        AND EndDate IS NULL;  
    
  8. Для проверки синтаксиса выберите пункт Синтаксический анализ в меню Запрос.To test the syntax, on the Query menu, click Parse. Если возвращается сообщение об ошибке, сравните инструкции с приведенными выше и при необходимости внесите исправления.If an error message is returned, compare the statements with the information above and correct as needed.

  9. Чтобы создать процедуру, в меню Запрос выберите пункт Выполнить.To create the procedure, from the Query menu, click Execute. Процедура создается как объект в базе данных.The procedure is created as an object in the database.

  10. Чтобы увидеть процедуру в обозревателе объектов, щелкните правой кнопкой мыши элемент Хранимые процедуры и выберите пункт Обновить.To see the procedure listed in Object Explorer, right-click Stored Procedures and select Refresh.

  11. Чтобы выполнить процедуру, в обозревателе объектов щелкните правой кнопкой мыши имя хранимой процедуры HumanResources.uspGetEmployeesTest и выберите пункт Выполнение хранимой процедуры.To run the procedure, in Object Explorer, right-click the stored procedure name HumanResources.uspGetEmployeesTest and select Execute Stored Procedure.

  12. В окне Выполнение процедуры введите Margheim в качестве значения для параметра @LastName и Diane в качестве значения для параметра @FirstName.In the Execute Procedure window, enter Margheim as the value for the parameter @LastName and enter the value Diane as the value for the parameter @FirstName.

Предупреждение

Проверяйте все данные, вводимые пользователем.Validate all user input. Не включайте их в сценарий, не выполнив проверку.Do not concatenate user input before you validate it. Никогда не выполняйте команду, построенную на основании непроверенных пользовательских входных данных.Never execute a command constructed from unvalidated user input.

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

Создание процедуры в редакторе запросовTo create a procedure in Query Editor

  1. В обозревателе объектовподключитесь к экземпляру компонента Компонент Database EngineDatabase Engine.In Object Explorer, connect to an instance of Компонент Database EngineDatabase Engine.

  2. В меню Файл выберите пункт Создать запрос.From the File menu, click New Query.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.Copy and paste the following example into the query window and click Execute. В данном примере создается та же хранимая процедура, что и раньше, но с другим именем процедуры.This example creates the same stored procedure as above using a different procedure name.

    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. Чтобы выполнить процедуру, скопируйте следующий пример в окно создаваемого запроса и нажмите кнопку Выполнить.To run the procedure, copy and paste the following example into a new query window and click Execute. Показаны различные методы задания значений параметров.Notice that different methods of specifying the parameter values are shown.

    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  
    
    

См. такжеSee Also

CREATE PROCEDURE (Transact-SQL)CREATE PROCEDURE (Transact-SQL)