sábado, 20 de febrero de 2010

Generación automática de procedimientos almacenados

La automatización hace que el tiempo de codificación sea más rápido y garantiza que todos los procedimientos generados usaran la misma estructura.


Este post incluye como crear automaticamente los scripts T-SQL de los procedimientos almacenados.



Ejemplo:
EXEC pr__SYS_MakeUpdateRecordProc 'Customers'
Crea scripts T-SQL de Store Procedure de Update

EXEC pr__SYS_MakeDeleteRecordProc 'Customers'

Crea scripts T-SQL de Store Procedure de Delete

EXEC pr__SYS_MakeInsertRecordProc 'Customers'

Crea scripts T-SQL de Store Procedure de Insert

EXEC pr__SYS_MakeSelectRecordProc

Crea scripts T-SQL de Store Procedure de Select 'Customers'

Creando automaticamente los store procedure quedarian con los siguiente nombres, como se pueden dar cuenta tiene la misma nomenclatura. En el ejemplo esta los store procedure de Customers y Orders.


prApp_Customers_Delete
prApp_Customers_Insert
prApp_Customers_Select
prApp_Customers_Update
prApp_Orders_Delete
prApp_Orders_Insert
prApp_Orders_Select
prApp_Orders_Update

Miremos un ejemplo completo,
crea el store para la tabla 'Order_Details'

EXEC pr__SYS_MakeUpdateRecordProc 'Order_Details'

El T-SQL Script quedara de la siguiente manera:


IF EXISTS(SELECT * FROM sysobjects WHERE name =
'prApp_Order_Details_Update')
DROP PROC prApp_Order_Details_Update
GO
-- Update a single record in Order_Details

CREATE PROC prApp_Order_Details_Update
@OrderID int,
@ProductID int,
@UnitPrice money,
@Quantity smallint,
@Discount real
AS

UPDATE Order_Details
SET UnitPrice = @UnitPrice,
Quantity = @Quantity,
Discount = @Discount
WHERE OrderID = @OrderID
AND ProductID = @ProductID

GO


Tienen que tomar ese T-SQL Script y ejecutarlo, pero si quieren evitarse ese paso solo tiene que agregar un 1 a parametro opcional. Ejemplo:

EXEC pr__SYS_MakeUpdateRecordProc 'Order_Details',1



Descarga de código disponible en:
StoredProcedures.exe (108 KB)


Articulo Original:

Msdn Magazine

2 comentarios:

YoruNoTori dijo...

GRACIAS
En verdad muy muy MUY valioso esto para mi, un abrazo desde La Paz Bolivia

Christian Delgado dijo...

Está muy interesante tu post, me gustaria saber de donde puedo leer más información acerca de esto. Si me ayudas con eso, muchas gracias!