Crear un procedimiento almacenadoCreate a Stored Procedure

En este tema se aplica a: SíSQL ServerSíbase de datos de SQL AzureSíalmacenamiento de datos de SQL Azure Sí Almacenamiento de datos paralelosTHIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Para obtener contenido relacionado con versiones anteriores de SQL Server, vea Crear un procedimiento almacenado.For content related to previous versions of SQL Server, see Create a Stored Procedure.

En este tema se describe cómo se crea un procedimiento almacenado de Transact-SQLTransact-SQL mediante SQL Server Management StudioSQL Server Management Studio y la instrucción CREATE PROCEDURE de Transact-SQLTransact-SQL .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.

PermisosPermissions

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.Requires CREATE PROCEDURE permission in the database and ALTER permission on the schema in which the procedure is being created.

Crear un procedimiento almacenadoHow to Create a Stored Procedure

Puede usar cualquiera de los siguientes medios:You can use one of the following:

Usar SQL Server Management StudioUsing SQL Server Management Studio

Para crear un procedimiento en el Explorador de objetosTo create a procedure in Object Explorer

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datosDatabase Engine y expándala.In Object Explorer, connect to an instance of Motor de base de datosDatabase Engine and then expand that instance.

  2. Expanda Bases de datos, la base de datos AdventureWorks2012AdventureWorks2012 y, por último, Programación.Expand Databases, expand the AdventureWorks2012AdventureWorks2012 database, and then expand Programmability.

  3. Haga clic con el botón derecho en Procedimientos almacenadosy, después, haga clic en Nuevo procedimiento almacenado.Right-click Stored Procedures, and then click New Stored Procedure.

  4. En el menú Consulta , haga clic en Especificar valores para parámetros de plantilla.On the Query menu, click Specify Values for Template Parameters.

  5. En el cuadro de diálogo Especificar valores para parámetros de plantilla , especifique los siguientes valores para los parámetros mostrados.In the Specify Values for Template Parameters dialog box, enter the following values for the parameters shown.

    ParámetroParameter ValorValue
    AutorAuthor Su nombre.Your name
    Create DateCreate Date La fecha de hoy.Today's date
    DescripciónDescription Devuelve datos de empleado.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. Haga clic en Aceptar.Click OK.

  7. En el Editor de consultas, reemplace la instrucción SELECT por la siguiente instrucción: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. Para probar la sintaxis, en el menú Consulta , haga clic en Analizar.To test the syntax, on the Query menu, click Parse. Si se devuelve un mensaje de error, compare las instrucciones con la información anterior y corrija lo que sea necesario.If an error message is returned, compare the statements with the information above and correct as needed.

  9. Para crear el procedimiento, en el menú Consulta , haga clic en Ejecutar.To create the procedure, from the Query menu, click Execute. El procedimiento se crea como un objeto de la base de datos.The procedure is created as an object in the database.

  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.To see the procedure listed in Object Explorer, right-click Stored Procedures and select Refresh.

  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.To run the procedure, in Object Explorer, right-click the stored procedure name HumanResources.uspGetEmployeesTest and select Execute Stored Procedure.

  12. En la ventana Ejecutar procedimiento, escriba Margheim como valor del parámetro @LastName y Diane como valor del parámetro @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.

Advertencia

Valide todos los datos proporcionados por el usuario.Validate all user input. No concatene ninguna entrada de usuario antes de validarla.Do not concatenate user input before you validate it. No ejecute nunca un comando creado a partir de una entrada de usuario no validada.Never execute a command constructed from unvalidated user input.

Usar Transact-SQLUsing Transact-SQL

Para crear un procedimiento en el Editor de consultasTo create a procedure in Query Editor

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datosDatabase Engine.In Object Explorer, connect to an instance of Motor de base de datosDatabase Engine.

  2. En el menú Archivo , haga clic en Nueva consulta.From the File menu, click New Query.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.Copy and paste the following example into the query window and click Execute. En este ejemplo se crea el mismo procedimiento almacenado que antes con otro nombre diferente.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. Para ejecutar el procedimiento, copie y pegue el ejemplo siguiente en una nueva ventana de consulta y haga clic en Ejecutar.To run the procedure, copy and paste the following example into a new query window and click Execute. Observe que se muestran diferentes métodos para especificar los valores de parámetro.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  
    

Vea tambiénSee Also

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