¿Cuál es la estructura de un procedimiento almacenado?
[(parámetro #1,...parámetro #1024)]
[con
{recompile|encrypt | Recompilar, cifrar}
]
[Para copiar]
Como línea de programa
El nombre del procedimiento almacenado no puede exceder las 128 palabras. Se pueden configurar hasta 1024 parámetros en cada procedimiento almacenado.
(versión del servidor SQL o superior), puede utilizar los parámetros de la siguiente manera:
@nombre del parámetro tipo de datos [cambio] [=valor predeterminado] [salida]
Debe haber un símbolo "@" antes de cada nombre de parámetro. Los parámetros de cada procedimiento almacenado son sólo para uso interno del programa. Además de IMAGEN, se pueden utilizar otros tipos de datos admitidos por SQL Server.
[=Valor predeterminado] equivale a establecer el valor predeterminado del campo al crear la base de datos. Este es el valor predeterminado para este parámetro. [Salida] se utiliza para especificar que los parámetros tienen valores de entrada y salida. Es decir, al llamar a este procedimiento almacenado, si el valor del parámetro especificado es un parámetro que necesitamos ingresar y también debe generarse en el resultado, entonces esto. El elemento debe generarse y, si solo se usa como parámetro de salida, puede usar CURSOR. Al usar este parámetro, debe especificar dos declaraciones, VARYING y OUTPUT.
Ejemplo:
Crear proceso order_tot_amt @o_id int, @p_tot int salida AS
SELECT @p_tot = suma(precio unitario * cantidad)
De los detalles del pedido
DONDE ordenó=@o_id
El ejemplo muestra:
Este ejemplo es para crear un procedimiento almacenado simple order_tot_amt. Este procedimiento almacenado calcula las ventas totales [precio unitario] * cantidad] de este pedido a partir de los detalles del pedido en función del número de identificación del pedido (@o_id) ingresado por el usuario. Esta cantidad se envía al programa que llama a este procedimiento almacenado a través del parámetro @. p_tot.
Crear procedimiento nombre_procedimiento
[@tipo de datos del parámetro][salida]
[con]{recompile|encrypt}
Igual que
sql_statement
Explicación:
Salida: Indica que el parámetro es retornable.
Usar {recompile|encrypt}
Recompilar: significa que este procedimiento almacenado debe recompilarse cada vez que se ejecuta.
Cifrado: El contenido del procedimiento almacenado creado será cifrado.
Por ejemplo:
El contenido de la tabla es el siguiente
Número, título y precio
001 Introducción al lenguaje C $30
002 Desarrollo de informes PowerBuilder $52
Ejemplo 1: Procedimiento almacenado para consultar el contenido del libro de tablas
Crear proceso query_book
Igual que p>
Seleccionar * del libro
Ir
Ejecutar query_book
Ejemplo 2:
Agregar un registro a la tabla del libro , consulta la cantidad total de todos los libros en la tabla.
Proceso de creación insert_book
@param1 char(10), @param2 varchar(20), @param3 dinero, @param4 salida de dinero
Cifrado- cifrado.
Igual que
Insertar valores del libro (número, título, precio) (@param1, @param2, @param3)
select @param 4 = suma (precio) del libro
Ir
Ejemplo de implementación:
Declarar @total_price importe
Exec insert_book '003 ', "Delphi Guía de desarrollo de control, $100, @total_price.
Imprimir el total 'es' +convert(varchar, @total_price).
Vaya a
los tres valores de retorno del procedimiento almacenado:
1), use return para devolver un número entero.
2) Devuelve parámetros en formato de salida.
3), conjunto de registros
La diferencia entre los valores de retorno:
Tanto la salida como la devolución se pueden recibir como variables en el programa por lotes y el conjunto de registros se devuelve al cliente que ejecuta el lote.
Ejemplo 3:
Hay dos tablas llamadas "Productos" y "Pedidos" con el siguiente contenido:
Productos
Producto número Nombre del producto Número de pedido del cliente
001 Bolígrafo 30
002 Pincel 50
003 Lápiz 100
Pedido
Número de producto Nombre del cliente Depósito del cliente
001 Distrito de Nanshan 30 yuanes
002 Distrito de Luohu 50 yuanes
003 Distrito de Baoan 4 yuanes
Una las dos tablas en una tabla temporal, utilizando el número de serie como condición de conexión y que solo contenga el número de serie, el nombre del producto, el nombre del cliente, el depósito y el monto total.
El importe total = depósito * número de pedidos, colocados en una tabla temporal durante el proceso de almacenamiento.
El código es el siguiente:
Crear proceso ventas_temporales
Igual que
Seleccione un número de producto, a. b. Nombre del cliente, b. Depósito del cliente, a. Número de pedido del cliente * b. Depósito del cliente como monto total.
En # templetable une internamente a en el pedido b del producto a número de producto = B. número de producto
Si @@error=0
Imprimir " OK. "
Otro
& ampn bsp print "Error"
Ir