Вы находитесь на странице: 1из 4

[SQL] Como planear un Procedimiento almacenado en SQL Server 2008 (Creacin y ejecucin).

26052009

6 Votes Saludos amigos, no se si sea realmente el nombre correcto para este post, le idea 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:

Espero les sea de ayuda, para algunos usuarios el ejemplo les puede parecer sumamente sencillo (y lo es), pero tambin creo que a los usuarios que inician los ubicara un poco ms de como desarrollar en Transact SQL 2008, espero sus comentarios.

Вам также может понравиться