Está en la página 1de 4

Lenguaje de Programacin VI

EJEMPLO DE PROCEDIMIENTOS ALMACENADOS


-- PROCEDIMIENTO ALMACENADO PARA CONSULTAR EN UNA TABLA create procedure SP_consultar @fecha datetime as select IdBoleta,Nroboleta,Fecha from Boleta where @fecha=Fecha exec SP_consultar '12/05/1990'

-- PROCEDIMIENTO ALMACENADO PARA INSERTAR EN UNA TABLA create procedure SP_InsertarCliente (@IdCliente int, @NombreCliente nvarchar (30), @Direccion nvarchar (50), @Telefono nchar(10)) as INSERT INTO [EJEMPLO].[dbo].[Cliente] (IdCliente, NombreCliente, Direccion, Telefono) VALUES (@IdCliente , @NombreCliente, @Direccion, @Telefono) Exec SP_InsertarCliente 1,'Carmen','Cajamarca','210453' SELECT * FROM cLIENTE -- PROCEDIMIENTO ALMACENADO PARA ACTUALIZAR ALTER PROCEDURE SP_consultar @NroBoleta int as select IdBoleta,Nroboleta,Fecha from Boleta where @NroBoleta=Nroboleta --PROCEDIMIENTO PARA INSERTAR EN 2 TABLAS --Aca hay ejemplos de insertar a dos tablas Customer y Address --osea un Cliente puede tener varias direcciones. --Solo le envias los parametros a InsertCustomer y este llama a -- InsertAddress mediante la clausula EXEC pero metidos en una transaccion --para hacegurarte que se ejecute en las dos tablas de lo contrario se hace un Rollbak. -- InsertAddress ------------------------------------------------

Ing. Yesenia Alayo

Lenguaje de Programacin VI
CREATE PROCEDURE InsertAddress @Address @Country @PhoneNumber @Fax @CustomerId @PKId AS SET NOCOUNT ON -- Insert the new address and then return the -- new identifier (PKId) INSERT Addresses (Address, Country, PhoneNumber, Fax, CustomerId) SELECT @Address, @Country, @PhoneNumber, @Fax, @CustomerId -- return ID for new Address record SELECT @PKId = @@IDENTITY RETURN 0 -----------------------------------------------GO --------------------------------------------------- InsertCustomer -------------------------------------------------NVARCHAR(255) = NULL, NVARCHAR(40) = NULL, NVARCHAR(30) = NULL, NVARCHAR(30) = NULL, NVARCHAR(255) = NULL, INT = NULL OUTPUT

Ing. Yesenia Alayo

Lenguaje de Programacin VI

CREATE PROCEDURE InsertCustomer @PKId @Email @Password @Name @Address @Country @PhoneNumber @Fax AS SET NOCOUNT ON DECLARE @AddressId INT DECLARE @CustomerId INT SET XACT_ABORT ON BEGIN TRANSACTION -- Insert Values into the customer table INSERT Customers (Email, Password, Name) INT = NULL OUTPUT, NVARCHAR(50) = NULL, BINARY(24) = NULL, NVARCHAR(40) = NULL, NVARCHAR(255) = NULL, NVARCHAR(40) = NULL, NVARCHAR(30) = NULL, NVARCHAR(30) = NULL

SELECT @Email, @Password, @Name

-- Get the new Customer Identifier, return as OUTPUT param SELECT @PKId = @@IDENTITY

-- Insert New Address record

Ing. Yesenia Alayo

Lenguaje de Programacin VI
-- Retrieve Address reference into @AddressId EXEC InsertAddress @Address, @Country, @PhoneNumber, @Fax, @PKId, @AddressId OUTPUT COMMIT TRANSACTION

RETURN 0

Ing. Yesenia Alayo