Crear un procedimiento almacenado

En este tema se describe cómo se crea un procedimiento almacenado de Transact-SQL con SQL Server Management Studio y la instrucción CREATE PROCEDURE de Transact-SQL.

Permisos

Requiere el permiso CREATE PROCEDURE en la base de datos y el permiso ALTER en el esquema en el que se va a crear el procedimiento.

Crear un procedimiento almacenado

Puede usar cualquiera de los siguientes medios:

Uso de SQL Server Management Studio

Para crear un procedimiento en el Explorador de objetos

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos y expándala.

  2. Expanda Bases de datos, expanda la base de datos AdventureWorks2012 y, a continuación, expanda Programación.

  3. Haga clic con el botón derecho en Procedimientos almacenadosy, después, haga clic en Nuevo procedimiento almacenado.

  4. En el menú Consulta , haga clic en Especificar valores para parámetros de plantilla.

  5. En el cuadro de diálogo Especificar valores para parámetros de plantilla , especifique los siguientes valores para los parámetros mostrados.

    Parámetro Value
    Autor Su nombre.
    Create Date La fecha de hoy.
    Descripción Devuelve datos de empleado.
    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. Haga clic en OK.

  7. En el Editor de consultas, reemplace la instrucción SELECT por la siguiente instrucción:

    SELECT FirstName, LastName, Department  
    FROM HumanResources.vEmployeeDepartmentHistory  
    WHERE FirstName = @FirstName AND LastName = @LastName  
        AND EndDate IS NULL;  
    
  8. Para probar la sintaxis, en el menú Consulta , haga clic en Analizar. Si se devuelve un mensaje de error, compare las instrucciones con la información anterior y corrija lo que sea necesario.

  9. Para crear el procedimiento, en el menú Consulta, haga clic en Ejecutar. El procedimiento se crea como un objeto de la base de datos.

  10. Para ver el procedimiento que aparece en el Explorador de objetos, haga clic con el botón derecho en Procedimientos almacenados y seleccione Actualizar.

  11. Para ejecutar el procedimiento, en el Explorador de objetos, haga clic con el botón derecho en el nombre del procedimiento almacenado HumanResources.uspGetEmployeesTest y seleccione Ejecutar procedimiento almacenado.

  12. En la ventana Ejecutar procedimiento, escriba Margheim como valor del parámetro @LastName y Diane como valor del parámetro @FirstName.

Advertencia

Valide todos los datos proporcionados por el usuario. No concatene ninguna entrada de usuario antes de validarla. No ejecute nunca un comando creado a partir de una entrada de usuario no validada.

Usar Transact-SQL

Para crear un procedimiento en el Editor de consultas

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En el menú Archivo , haga clic en Nueva consulta.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. En este ejemplo se crea el mismo procedimiento almacenado que antes con otro nombre diferente.

    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. Para ejecutar el procedimiento, copie y pegue el ejemplo siguiente en una nueva ventana de consulta y haga clic en Ejecutar. Observe que se muestran diferentes métodos para especificar los valores de parámetro.

    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
    

Consulte también

CREATE PROCEDURE (Transact-SQL)