Red de conocimiento informático - Conocimiento informático - ¿Cuál es la estructura de un procedimiento almacenado?

¿Cuál es la estructura de un procedimiento almacenado?

Proceso de creación[Propietario. ] Nombre del procedimiento almacenado [; número de programa]

[(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

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