Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo utilizar procedimientos almacenados

Cómo utilizar procedimientos almacenados

Pregunta 1: ¿Cómo utilizar procedimientos almacenados en SQL? Procedimientos almacenados y aplicaciones SQL

1. Introducción:

El procedimiento almacenado (procedimiento almacenado) es un conjunto de declaraciones SQL para completar funciones específicas. Este conjunto de declaraciones SQL compiladas

.

Almacenado en la base de datos, el usuario especifica el nombre del procedimiento almacenado y proporciona parámetros. Si el procedimiento almacenado tiene parámetros, se ejecutará

It

It

It

It

Almacenamiento Los procedimientos se almacenan en una base de datos.

En las versiones de la serie SQL Server, los procedimientos almacenados se dividen en dos categorías: procedimientos almacenados proporcionados por el sistema y procedimientos almacenados definidos por el usuario

.

El SP del sistema se almacena en la base de datos maestra con el prefijo sp_ y se utiliza para obtener

información de las tablas del sistema para que los administradores del sistema puedan administrar SQL Server.

Un procedimiento almacenado definido por el usuario es un procedimiento creado por el usuario y realiza funciones específicas, como consultar la información de datos requerida por el usuario.

Los procedimientos almacenados definidos por el usuario son procedimientos creados por los usuarios para completar funciones específicas, como consultar la información de datos requerida por el usuario.

Los procedimientos almacenados tienen las siguientes ventajas

1. Los procedimientos almacenados permiten la programación de componentes estándar (diseño modular)

Una vez creado un procedimiento almacenado, se puede utilizar varias veces en el programa. Se pueden realizar llamadas sin reescribir las declaraciones SQL del procedimiento almacenado, y los profesionales de bases de datos pueden modificar los procedimientos almacenados en cualquier momento.

Los profesionales de bases de datos pueden modificar los procedimientos almacenados en cualquier momento sin ningún impacto en el código fuente de la aplicación. Dado que el código fuente de la aplicación solo contiene declaraciones de llamada a procedimientos almacenados,

esto mejora enormemente la portabilidad del programa.

2. Los procedimientos almacenados pueden lograr una ejecución rápida

Si una operación contiene una gran cantidad de código Transaction-SQL o necesita ejecutarse varias veces, entonces los procedimientos almacenados son más eficientes que operaciones por lotes

La ejecución es mucho más rápida porque el procedimiento almacenado está precompilado y el optimizador de consultas ejecuta consultas en el procedimiento almacenado la primera vez que se ejecuta. El optimizador de consultas lo analizará y optimizará

y le proporcionará un plan de ejecución que terminará en las tablas del sistema, mientras que la declaración SQL de transacción por lotes se compilará y compilará cada vez que se ejecute Optimizado<. /p>

por lo que es relativamente lento.

3. Los procedimientos almacenados pueden reducir el tráfico de red

Para la misma operación (como una consulta) en el objeto de la base de datos de datos, si se cambia el Transaction-SQL involucrado en la operación

Las declaraciones se organizan como procedimientos almacenados, luego, cuando se llama al procedimiento almacenado en la computadora cliente, solo el procedimiento almacenado se transmite a través de la red

La declaración es no una declaración por lotes.

Cuando se llama a un procedimiento almacenado en la computadora cliente, solo la llamada se transmitirá a la red; de lo contrario,

serán múltiples declaraciones SQL, lo que aumenta considerablemente el tráfico de la red y reduce carga de red.

4.

Los procedimientos almacenados se pueden utilizar como mecanismo de seguridad para permitir que los administradores del sistema accedan a los datos correspondientes limitando los permisos para ejecutar procedimientos almacenados.

Límite

y dar rienda suelta al

rol de administrador del sistema.

El segundo son las variables

@I

El tercero son las declaraciones de control de procesos (if else | select case | while )

Select .. .Ejemplo de caso

DECLARE @iRet INT, @PKDisp VARCHAR(20)

SET @iRet = '1'

Seleccione @iRet =

CASO

CUANDO @PKDisp = 'uno' ENTONCES 1

CUANDO @PKDisp = 'dos' ENTONCES 2

CUANDO @PKDisp = ' tres' ENTONCES 3

CUANDO @PKDisp = 'cuatro' ENTONCES 4

CUANDO @PKDisp = 'cinco' ENTONCES 5

MÁS 100

FIN

IV formato del procedimiento almacenado

Crear procedimiento almacenado

Crear procedimiento almacenado dbo. Nombre del procedimiento almacenado

Parámetros del procedimiento almacenado

AS

Ejecutar sentencia

RETURN

Ejecutar procedimiento almacenado

GO

***** * * ************************************************* *** /

-- Declaración de variables, cuando declaras una variable en sql.NET, debes agregar el símbolo @ antes de la variable, debes agregar el símbolo @ antes de la variable

DECLARE @I INT

-- Asignación de variables, cuando asignas un valor a una variable, debes agregar el símbolo set antes de la variable

-- Asignación de un variable, cuando asigna un valor a una variable, el símbolo de conjunto debe agregarse antes de la variable.

SET @I = 30

-- Declarar múltiples variables

DECLARE @s varchar(10), @a INT

-- SQL sentencia if

p>

IF condicional BEGIN

Declaración de ejecución

FIN

ELSE BEGIN

...... gt; gt ;

Pregunta 2: ¿Cómo llama un procedimiento almacenado SQL a un procedimiento almacenado? Simplemente use exec en un procedimiento almacenado para ejecutar el nombre de otro procedimiento almacenado y los parámetros que requiere.

Por ejemplo, exec acaricia abc '1', '2' (abc es el nombre del procedimiento almacenado , '1', '2' son sus parámetros

Pregunta 3: ¿Qué es el procedimiento almacenado en Oracle y cómo usarlo en el código? No sé de dónde lo saqué. A primera vista, LZ es un principiante, ¿no puedes dar algunos ejemplos?

Por ejemplo, crear una tabla de prueba

crear tabla test(id int, name varchar2(10) , cuenta) int); insertar en valores de prueba (1,'Zhangsan',100); insertar en valores de prueba (2,'Li Si',200);

La pregunta ahora es

Encuentra el recuento de todas las personas sumadas

Crea un procedimiento almacenado

Crea o reemplaza p_test --Crea un procedimiento almacenado, asv_counts int; -Definir el inicio de la variable --Iniciar selección de suma(cuentas) en v_counts de la prueba;--Ingresar los resultados en la variable DBMS_OUTPUT.PUT_LINE(v_counts) PUT_LINE(v_counts);--Imprimir el final de los resultados;--Fin

Realice este almacenamiento sin parámetros de entrada

start p_test; end;

Luego verifique los resultados

Cree un procedimiento almacenado con parámetros de entrada.

El problema es, id ¿Cuál es el nombre de la persona con 1?

cree o reemplace p_test1(v_id int)asv_name varchar2(10); id=v_id; DBMS_OUTPUT.PUT_LINE(v_name); end;

Ejecutar así

beginp_test1(1); comente para usted en el punto 2, debería poder entenderlo usted mismo

Para agregar, los procedimientos almacenados no necesariamente solo ejecutan consultas, sino que también pueden eliminar o modificar declaraciones SQL, etc.

En general, utiliza varias o N declaraciones SQL*** para completar ciertos requisitos específicos en el sistema. Estos requisitos se pueden completar con una declaración SQL o una combinación de varias declaraciones SQL

Pregunta 4: ¿Cómo? ¿Llamar a procedimientos almacenados del servidor SQL? En el mantenimiento de la base de datos de SQL Server o en el desarrollo web, a veces es necesario llamar a otros procedimientos almacenados o trabajos y otras operaciones de la base de datos en los procedimientos almacenados. El método de llamada se presenta a continuación.

En SQL. Para el mantenimiento de la base de datos del servidor o el desarrollo web, a veces es necesario llamar a otros procedimientos almacenados o trabajos y otras operaciones de la base de datos en el procedimiento almacenado. A continuación se describe el método de llamada

En el mantenimiento de la base de datos de SQL Server o el desarrollo web. a veces es necesario llamar Para otras operaciones de base de datos, como otros procedimientos almacenados o trabajos en el procedimiento almacenado, el método de llamada se presenta a continuación

En el mantenimiento de bases de datos de SQL Server o desarrollo web, a veces es necesario llamar a otros operan procedimientos almacenados o trabajos en el procedimiento almacenado y otras bases de datos.

En el mantenimiento de bases de datos de SQL Server o en el desarrollo web, a veces es necesario llamar a otros procedimientos almacenados en otras operaciones de bases de datos, como procedimientos almacenados o trabajos. A continuación se describe cómo llamar a estos procedimientos almacenados

1. Llamar en SQL. SERVIDOR sin procedimiento almacenado que genera parámetros

Código SQL

-- Definición de procedimiento almacenado

crear procedimiento [sys].[sp_add_product]

(

@m_viewcount int = 0

, @m_hotcount int = 0

)

como

ir

- llamada a procedimiento almacenado

declarar @m _viewcount int

declarar @m_hotcount int

exec sp_add_product @m_viewcount, @m_hotcount

p>

II.Llamar a un procedimiento almacenado con parámetros de salida en SQL SERVER

Código SQL

-Definir un procedimiento almacenado

crear procedimiento [ sys].[sp_add_product]

(

@m_viewcount int = 0

, @m_hotcount int salida

)

--Llamar al procedimiento almacenado

Declarar @m_viewcount int = 0

Declarar @m_hotcount int

exec dbo.sp_add_product @ m_viewcount, salida de @m_hotcount

Pregunta 5: Aquí se debe utilizar cómo llamar a un procedimiento almacenado dentro de un procedimiento almacenado, porque cuando se ejecuta Abierto, otros estados no cerrados desencadenarán excepciones irrepetibles.

if (sqlConn.State ! = ConnectionState.Closed)

sqlConn.Open()

Sqlmand sqlCmd = new Sqlmand(); sqlCmd.Connection = sqlConn;

sqlCmd.MandText = proc_hististory;

sqlConn.Open()mandText = proc_history

sqlCmd.mandType = mandType.StoredProcedure; sqlCmd.Parameters.Add(new SqlParameter(@ like, NewTitle));

p> Si desea devolver un conjunto de datos, no llame a sqlCmd.ExecuteNonQuery().

ExecuteNonQuery();, llama directamente al siguiente método

SqlDataAdapter sqlDA = new SqlDataAdapter(sqlCmd);

DataSet ds = new DataSet(); Fill(ds);

return ds;

Si está ejecutando una declaración DML, llámela directamente de la siguiente manera

sqlCmd.ExecuteNonQuery(); /p>

/* Las dos declaraciones anteriores no pueden existir al mismo tiempo*/

Pregunta 6: ¿Cómo llamar a procedimientos almacenados en PL/SQL Developer? Compruebe si hay parámetros en su procedimiento almacenado

En circunstancias normales, busque el procedimiento almacenado en la lista de la izquierda, busque el nombre del procedimiento almacenado que escribió y vea si hay una cruz roja arriba. no hay cruz roja, la compilación fue exitosa, todavía hay un problema con la cruz roja, es necesario modificarla

Luego haga clic derecho en el procedimiento almacenado (la versión china selecciona el botón de prueba, inglés. La versión china selecciona el botón de prueba), luego

Luego haga clic con el botón derecho en Procedimiento almacenado (la versión china selecciona el botón de prueba, la versión en inglés selecciona el botón de prueba y luego hay un lugar para ingresar parámetros, ingrese los parámetros y luego haga clic en Cargar

Otro método es abrir la ventana SQL y escribir el siguiente código

comenzar

nombre del procedimiento

; end;

Luego haga clic en el engranaje de ejecución, preste atención a los dos puntos y comas

p>

Pregunta 7: ¿Cómo usar procedimientos almacenados en bases de datos? Resuelva...10 puntos Palabras clave: procedimientos almacenados

Ejemplo:

SQLgt; crear [o reemplazar] nombre_procedimiento es

comenzar

--- Comenzar la ejecución

insert into test(' 10001', 'Visket ');

end

/

El La operación anterior agrega información a la tabla de prueba

El comando para ejecutar el procedimiento almacenado es exec

Recuerde que en el procedimiento almacenado, debe haber un punto y coma al final de la declaración

Pregunta 8: ¿Cómo llamar al procedimiento almacenado ORACLE? Ingrese el procedimiento almacenado en la ventana PL/SQL SQL, haga clic derecho en prueba (la versión en inglés es test bluff, la interfaz de prueba). Aparece, ingresa los parámetros correspondientes y F8, si no hay parámetros, directamente F8.

Pregunta 9: Cómo utilizar la línea de procedimiento almacenado generalmente se divide en diez situaciones La sintaxis es diferente en cada caso: 1. Cree la sintaxis create proc | procedimiento pro_name [{@argument datatype} [=default] [output], {@argument datatype} [=default] [output], ....] como SQL_statements2.

Cree un procedimiento almacenado sin parámetros: cree un procedimiento almacenado si (existe (seleccione * de sys.objects donde nombre = 'proc_get_student')) suelte proc_get_studentgocreate proc proc_get_studentas select * de estudiante; invoque, ejecute el procedimiento almacenado exec proc_get_student; 3. Modifique el procedimiento almacenado: modifique el procedimiento almacenado alter proc_get_studentas select * del estudiante; - invoque, ejecute el procedimiento almacenado exec proc_get_student 3. Modifique el procedimiento almacenado: modifique el procedimiento almacenado alter proc_get_studentas select * del estudiante; -invocar, ejecutar el procedimiento almacenado exec proc_get_student; 3. Studentasselect * del estudiante; 4. Procedimiento almacenado de referencia: procedimiento almacenado de referencia si (object_id('proc_find_stu', 'P') no es nulo) drop proc proc_find_stugocreate proc proc_find_stu(@startId) )) stu(@startId int, @endId int) as select * from Student donde ID entre @startId y @endIdgoexec proc_find_stu 2, 4. Procedimiento almacenado usando parámetros comodín - Procedimiento almacenado usando parámetros comodín if (object_id('proc_findStudentByName'; , 'P' ) no es nulo) drop proc proc_findStudentByNamegocreate proc proc_findStudentByName(@name varchar(20) = 'j', @nextName varchar(20) = '')as select * del estudiante donde el nombre es como @name y el nombre como @ nextName; goexec proc_findStudentByName ;exec proc_findStudentByName findStudentByName 'o', 't'; 6. Procedimiento almacenado con parámetros de salida si (object_id('proc_getStudentRecord', 'P') no es nulo) drop proc proc_getStudentRecordgocreate proc proc_getStudentRecord(@id int, - -parámetro de entrada predeterminado @nombre varchar(20) salida, --parámetro de salida @edad varchar(20) salida--parámetro de entrada-salida) como seleccione @nombre = nombre, @edad = edad del estudiante donde id = @id y sexo = @ edad; ir

-- Declare @id int, @name varchar(20), @temp varchar(20)... gt;

Pregunta 10: Cómo utilizar sentencias SQL para ver procedimientos almacenados -- Utilice The La siguiente declaración puede ver el código específico del procedimiento almacenado exec sp_helptext nombre del procedimiento: use la siguiente declaración para ver qué procedimientos almacenados están en la base de datos, seleccione * de sysobjects donde tipo='P'

.