Que son procedimientos Almacenados: Es un conjunto de codigo puro del lenguaje que utilizamos dentro de las bases de datos como por ejemplo: create table, insert into, Select from. Que se almacena fisicamente en la base de datos y de la misma forma se exportan cuando creamos una copia de seguridad de nuestra base de datos.
Como funcionan: Los procedimientos almacenados se basan en una estructura definida por SQL SERVER
Iniciamos con:
- CREATE PROCEDURE nombre_del_procedimiento @variables tipo(longitud) }
- AS
- BEGIN
- Todo el codigo puro de base de datos
- END
Como probamos: Esto es lo más fácil de realizar solo necesitamos lo siguiente:
Escribimos EXEC nombre_del_procedimiento ' variables',12,' variables'
Nota: Cabe destacar que no necesariamente se deben definir variables en el caso de un Select * From solo pondremos EXEC y nombre del procedimientoVamos a realizar un ejemplo donde aplicaremos lo antes aprendido
- Creemos un base de datos con el nombre que decidamos
- Creemos la siguiente tabla
- Ahora definimos el procedimiento almacenado para insertar un nuevo registro(Recordemos que todo lo que esta dentro del Begin puede ser cualquier sentencia de código puro de SQL SERVER: Insert into, Delete From, Update set, etc)
- Ejecutamos el cogido y ahora probamos con los siguientes datos:
Codigo: 001
Nombre: Fabian
Apellido: Bermeo
Edad: 19
Universidad: Tecnológico Sudamericano
- Ejecutamos el procedimiento almacenado con los datos anteriores tomando en consideración que: los campos tipo int se envian sin comilla el resto dentro de comilla.
- Para ejecutar el procedimiento almacenado escribimos EXEC + el nombre del procedimiento + las variables si fuera el caso y clic en ejecutar
- Ahora revizamos en nuestra tabla y tenemos lo siguiente:
- Como podemos ver funciona sin ningun problema
Nota: Todas las sentencias de SQL SERVER se pueden enviar dentro de un procedimiento almacenado, inclusive inner joins, busquedas &like entre otras.
Siguiente clase:
Aprenderemos a invocar store procedures desde ASPX
8 comentarios:
Se puede usar código iterativo dentro de un procedimiento almacenado, por ejemplo poner un for( ... ){}, cosas asi ? Gracias.
Hola @Daniel no podemos realizar codigo iterativo dentro de los procedimientos, para realizar iteraciones debes usar indices y secuencias
buena explicada simple y completa XD
cuando uno de los campos es autoincrementable como se llena el campo?
en mysql le mandas un 0 en sql server dejas el campo vacio y los demás campos llenos, ejemplo si tienes una tabla clientes con el id tipo identity(0,1), nombre,apellido el insert seria insert into clientes values(auxnom,auxape)
gracias @miguel esperamos ser siempre de ayuda (Y)
Y Si tengo que hacer un mantenedor?, onda así como que hayan datos en la base de datos y se pida que ingrese un id_tarjeta y una fecha y con eso mostrar los datos del numero_patente del bus, nombre del chofer del bus y mostrar los nombres de los paraderos y las comunas donde ha transitado este bus
es muy facil @Marcelo, recuerda que un procedimiento almacenado es sql puro, primero trabaja en la consulta con un select cuando lo definas alli le aplicas como un procedimiento me explico:
Select t.emp_transporte,mt.tra_hora
from transporte t, movimientos_transporte mt
where
t.bus_id = mt.bus_id and
t.bus_id = '12'
luego cuando yo ya tengo definido lo que quiero hacer aplico el procedimiento
create procedure consultando_transporte
@bus_id nvarchar(11)
as
begin
Select t.emp_transporte,mt.tra_hora
from transporte t, movimientos_transporte mt
where
t.bus_id = mt.bus_id and
t.bus_id = @bus_id
end
//inclusive puedes hacer insert luego un update un select solo recuerda colocar un ";" luego de cada estructura sql para que el motor pueda diferenciarlo
Publicar un comentario