Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Analítica (PDW)
Base de datos SQL en Microsoft Fabric
En este artículo se describe cómo crear un procedimiento almacenado de SQL Server mediante SQL Server Management Studio y mediante la instrucción CREATE PROCEDURE de Transact-SQL.
Permissions
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.
Creación de un procedimiento almacenado
Puede usar SQL Server Management Studio (SSMS) o Transact-SQL en una ventana de consulta de SSMS para ejecutar un procedimiento almacenado. Instale la versión más reciente de SQL Server Management Studio (SSMS).
Note
En el procedimiento almacenado de ejemplo de este artículo se usa la base de datos de ejemplo AdventureWorksLT2022 (SQL Server) o AdventureWorksLT (Azure SQL Database). Para obtener información sobre cómo obtener y usar las bases de datos de ejemplo de AdventureWorksLT, consulte Bases de datos de ejemplo de AdventureWorks.
Uso de SQL Server Management Studio
Para crear un procedimiento almacenado en SSMS:
En el Explorador de objetos, conéctese a una instancia de SQL Server o Azure SQL Database.
Para obtener más información, consulte los siguientes inicios rápidos:
Expanda la instancia y, a continuación, expanda Bases de datos.
Expanda la base de datos que desee y, a continuación, expanda Programabilidad.
Haga clic con el botón derecho en Procedimientos almacenados y, a continuación, seleccione Nuevo>Procedimiento almacenado. Se abrirá una nueva ventana Consulta con una plantilla para el procedimiento almacenado.
La plantilla de procedimiento almacenado predeterminada tiene dos parámetros. Si el procedimiento almacenado tiene menos parámetros, más o ninguno, agregue o quite líneas de parámetro en la plantilla según corresponda.
En el menú Consulta , seleccione Especificar valores para parámetros de plantilla.
En el cuadro de diálogo Especificar valores para los parámetros de plantilla, proporcione la siguiente información de los campos Valor:
-
Author: reemplace
Namepor su nombre. - Create Date: introduzca la fecha de hoy.
- Description: describa brevemente lo que hace el procedimiento.
-
Procedure_Name: reemplace
ProcedureNamepor el nuevo nombre del procedimiento almacenado. -
@Param1: reemplace
@p1por el nombre del primer parámetro, como @ColumnName1. -
@Datatype_For_Param1: según corresponda, reemplace
intpor el tipo de datos del primer parámetro, como nvarchar(50). -
Default_Value_For_Param1: según corresponda, reemplace
0por el valor predeterminado del primer parámetro o NULL. -
@Param2: reemplace
@p2por el nombre del segundo parámetro, como @ColumnName2. -
@Datatype_For_Param2: según corresponda, reemplace
intpor el tipo de datos del segundo parámetro, como nvarchar(50). -
Default_Value_For_Param2: según corresponda, reemplace
0por el valor predeterminado del segundo parámetro o NULL.
En la captura de pantalla siguiente se muestra el cuadro de diálogo completado para el procedimiento almacenado de ejemplo:
-
Author: reemplace
Selecciona Aceptar.
En el Editor de Power Query, reemplace la instrucción SELECT por la consulta del procedimiento.
El código siguiente muestra la instrucción CREATE PROCEDURE completada para el procedimiento almacenado de ejemplo:
-- ======================================================= -- Create Stored Procedure Template for Azure SQL Database -- ======================================================= SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE SalesLT.uspGetCustomerCompany ( -- Add the parameters for the stored procedure here @LastName nvarchar(50) = NULL, @FirstName nvarchar(50) = NULL ) AS /* -- ============================================= -- Author: My Name -- Create Date: 01/23/2024 -- Description: Returns the customer's company name. -- ============================================= */ BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON -- Insert statements for procedure here SELECT FirstName, LastName, CompanyName FROM SalesLT.Customer WHERE FirstName = @FirstName AND LastName = @LastName; END GOPara probar la sintaxis, seleccione Analizar en el menú Consulta. Corrija los errores.
Seleccione Ejecutar en la barra de herramientas. El procedimiento se crea como un objeto de la base de datos.
Para ver el nuevo procedimiento que aparece en el Explorador de objetos, haga clic con el botón derecho en Procedimientos almacenados y seleccione Actualizar.
Para ejecutar el procedimiento:
En el Explorador de objetos, haga clic con el botón derecho en el nombre del procedimiento almacenado y seleccione Ejecutar procedimiento almacenado.
En la ventana Ejecutar procedimiento, escriba los valores de todos los parámetros y, a continuación, seleccione Aceptar. Para obtener instrucciones detalladas, consulte Ejecución de un procedimiento almacenado.
Por ejemplo, para ejecutar el procedimiento de ejemplo
SalesLT.uspGetCustomerCompany, escriba Cannon en el parámetro @LastName y Chris en el parámetro @FirstName y, a continuación, seleccione Aceptar. El procedimiento almacenado se ejecuta y devuelveFirstNameChris,LastNameCannon yCompanyNameOutdoor Sporting Goods.
Important
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.
Uso de Transact-SQL
Para crear un procedimiento en el Editor de Power Query de SSMS:
En SSMS, conéctese a una instancia de SQL Server o Azure SQL Database.
Seleccione Nueva consulta en la barra de herramientas.
Escriba el código siguiente en la ventana Consulta, reemplazando
<ProcedureName>, los nombres y los tipos de datos de cualquier parámetro y la instrucción SELECT por sus propios valores.CREATE PROCEDURE <ProcedureName> @<ParameterName1> <data type>, @<ParameterName2> <data type> AS SET NOCOUNT ON; SELECT <your SELECT statement>; GOPor ejemplo, la instrucción siguiente crea el mismo procedimiento almacenado en la base de datos
AdventureWorksLTque el ejemplo anterior, con un nombre de procedimiento ligeramente diferente.CREATE PROCEDURE SalesLT.uspGetCustomerCompany1 @LastName nvarchar(50), @FirstName nvarchar(50) AS SET NOCOUNT ON; SELECT FirstName, LastName, CompanyName FROM SalesLT.Customer WHERE FirstName = @FirstName AND LastName = @LastName; GOSeleccione Ejecutar en la barra de herramientas para ejecutar la consulta. Se creará el procedimiento almacenado.
Para ejecutar el procedimiento almacenado, escriba una instrucción EXECUTE en una nueva ventana Consulta, proporcione valores para los parámetros y, a continuación, seleccione Ejecutar. Para obtener instrucciones detalladas, consulte Ejecución de un procedimiento almacenado.