You are on page 1of 6

Creacin y ejecucin de un Procedimiento Almacenado en SQL Server 2008

El objetivo de este ejemplo es que a partir de una sentencia SQL (Select, Insert, Update, Delete,
Etc) puedan lograr parametrizar la consulta y posteriormente elaborar su procedimiento
almacenado.
Paso 1. Sentencia SQL a ejecutar.
USE prueba;
GO

INSERT INTO dbo.DEMO_PRODUCTO (nombre, precio, descripcion, fecha)


VALUES('Whisky', 275.50,'12 Aos de aejamiento, promocin 2x1',GETDATE());
GO

SELECT TOP 1 * FROM dbo.DEMO_PRODUCTO ORDER BY id DESC;


GO

Nota: deben de asegurarse que la sentencia SQL que ejecuten se realice correctamente.
Paso 2. Parametrizar la Sentencia SQL.
Por cada uno de los campos que se requieren al insertar (para el caso de este ejemplo), deben de
convertirse en variables T-SQL con el tipo de dato correspondiente, asignarles el valor del campo a
Insertar y sustituirlos en la sentencia SQL.
USE prueba;
GO

DECLARE @producto varchar(100),


@precio smallmoney,
@descripcion varchar(750);

SET @producto = 'Agua mineral';


SET @precio = 12.50;
SET @descripcion = 'Agua mineral de 2 litros';

INSERT INTO dbo.DEMO_PRODUCTO (nombre, precio, descripcion, fecha)


VALUES(@producto, @precio,@descripcion,GETDATE());
GO

SELECT TOP 2 * FROM dbo.DEMO_PRODUCTO ORDER BY id DESC;


GO

Paso 3. Convertir el Bacth T-SQL a Procedimiento almacenado.


Ya que tenemos la sentencia parametrizada, el paso final es convertirla en procedimiento
almacenado, para esto tenemos que agregar la estructura de un STORE PROCEDURE SP de
SQL Server 2008 como lo muestra el siguiente ejemplo:
CREATE PROCEDURE <Procedure_Name, sysname, Procedure_Name>
<@param1, sysname, @p1> <datatype_for_param1, , int> = <default_value_for_param1, , 0>,
<@param2, sysname, @p2> <datatype_for_param2, , int> = <default_value_for_param2, , 0>
AS
<Instrucciones T-SQL (Insert, Select, Update, Delete, ETC)>
GO
La primera parte es asignarle un nombre al SP.
La Segunda parte es crear los parmetros que recibir el SP.
Como tercera parte es crear el Batch de T-SQL que se ejecutara al llamar a nuestro SP.

Ejemplo:

El cdigo:
CREATE PROCEDURE InsertaProductoSP
@producto varchar(100),
@precio smallmoney,
@descripcion varchar(750)
AS
INSERT INTO dbo.DEMO_PRODUCTO (nombre, precio, descripcion, fecha)
VALUES(@producto, @precio,@descripcion,GETDATE());
GO
La ejecucin:
USE prueba;
GO

EXEC InsertaProductoSP 'Hielos', 12.90, 'Bolsa de hielos de 3 kilos';


GO

SELECT TOP 3 * FROM dbo.DEMO_PRODUCTO ORDER BY id DESC;


GO
Resultado:

Luego creamos un procedimiento almacenado para insertar usuarios.


---se crea el procedimiento almacenado
create procedure insertarusurios
---se declaran los parametros que usaremos
@nombre varchar(50),@apellido varchar(50),@pais varchar(50)
as
---se hace un insert a la tabla usuarios y se envian los parametros
insert into usuarios
values(@nombre,@apellido,@pais)

Para usar el procedimiento almacenado e insertar un registro lo aremos as.


---se usa el procedimiento para ingresar un usuario enviando los parmetros
insertarusurios 'ana','turcios','costarica'

Crearemos un procedimiento almacenada para eliminar usuarios.


---se crea el procedimiento para eliminar usuarios
create procedure elminar_usuarios
---se declaran los parmetros que usaremos
@nombre varchar(50),@apellido varchar(50)
as
---se hace un delete a la tabla usuarios con los parmetros que declaramos
delete usuarios
where nombre=@nombre and apellido=@apellido

Y para usar el procedimiento almacenado y eliminar un usuario aremos lo siguiente

---se usa el procedimiento almacenada y se le envan los parmetros


elminar_usuarios 'ana','turcios'

You might also like