11. Curso SQL SERVER - Creando procedimientos almacenados
- Hola a todos , en esta ocasión vamos continuar con nuestro curso sobre SQL SERVER. En este capítulo del curso vamos a ver como crear y llamar a procedimientos almacenados.Un procedimiento almacenado de SQL Server es un grupo de una o varias instrucciones escritas en Transact-SQL. Ese conjunto de instrucciones pueden utilizarse de una forma similar a las funciones en los lenguajes de alto nivel.Es una porción de código que puede llamarse desde cualquiera de nuestros scripts.
- Os dejo un enlace a la documentación oficial de Microsoft que habla sobre este tema: https://docs.microsoft.com/es-es/sql/relational-databases/stored-procedures/stored-procedures-database-engine?view=sql-server-2017
- En el vídeo os muestro un ejemplo de creación de un procedimiento almacenado.En el ejemplo calculamos el total de dinero obtenido en pedidos realizados con una determinada moneda.
- Os dejo también el script de creación de nuestro procedimiento almacenado.Además os dejo el diagrama de tablas de nuestra base de datos de ejemplo. De esta manera es más fácil entender el script .
-- IMPORTE EN EUROS DE TODOS LOS PEDIDOS QUE SE HAN PAGADO SEGUN LA
--MONEDA QUE SE PASE COMO PARAMETRO
--MONEDA QUE SE PASE COMO PARAMETRO
USE [PruebasCurso]
GO
/****** Object: StoredProcedure [dbo].[CalcularTotalPorMoneda] Script Date: 01/08/2018 16:54:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[CalcularTotalPorMoneda](
@Moneda varchar(10)
)
AS
BEGIN
SET NOCOUNT ON;
SELECT SUM(Cantidad*Precio*ValorCambio) as totalImporte FROM PEDIDOS WITH(NOLOCK)
INNER JOIN MONEDAS WITH(NOLOCK) ON PEDIDOS.IdMoneda = MONEDAS.IdMoneda
INNER JOIN PEDIDOS_LINEAS WITH(NOLOCK) ON PEDIDOS.IdPedido = PEDIDOS_LINEAS.IdPedido
INNER JOIN PRODUCTOS WITH(NOLOCK) ON PEDIDOS_LINEAS.IdProducto = PRODUCTOS.IdProducto
WHERE MONEDAS.Moneda=@Moneda
END
GO
/****** Object: StoredProcedure [dbo].[CalcularTotalPorMoneda] Script Date: 01/08/2018 16:54:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[CalcularTotalPorMoneda](
@Moneda varchar(10)
)
AS
BEGIN
SET NOCOUNT ON;
SELECT SUM(Cantidad*Precio*ValorCambio) as totalImporte FROM PEDIDOS WITH(NOLOCK)
INNER JOIN MONEDAS WITH(NOLOCK) ON PEDIDOS.IdMoneda = MONEDAS.IdMoneda
INNER JOIN PEDIDOS_LINEAS WITH(NOLOCK) ON PEDIDOS.IdPedido = PEDIDOS_LINEAS.IdPedido
INNER JOIN PRODUCTOS WITH(NOLOCK) ON PEDIDOS_LINEAS.IdProducto = PRODUCTOS.IdProducto
WHERE MONEDAS.Moneda=@Moneda
END
No hay comentarios:
Publicar un comentario