Crear un procedimiento almacenado

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

  • Antes de empezar: Permisos

  • Para crear un procedimiento con SQL Server Management Studio, 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:

  • SQL Server Management Studio

  • Transact-SQL

Usar SQL Server Management Studio

Para crear un procedimiento en el Explorador de objetos

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

  2. Expanda Bases de datos, la base de datos AdventureWorks2012 y, por último, Programación.

  3. Haga clic con el botón secundario en Procedimientos almacenados y, a continuación, 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

    Valor

    Autor

    Your name

    Create Date

    Today's date

    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 Aceptar.

  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 secundario en Procedimientos almacenados y seleccione Actualizar.

  11. Para ejecutar el procedimiento, en el Explorador de objetos, haga clic con el botón secundario 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.

Nota de advertenciaAdvertencia

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.

[Arriba]

Usar Transact-SQL

Para crear un procedimiento en el Editor de consultas

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

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

  3. Copie y pegue el ejemplo siguiente 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
    

[Arriba]

Vea también

Referencia

CREATE PROCEDURE (Transact-SQL)