Lenguaje de Programación VI
EJEMPLO DE PROCEDIMIENTOS ALMACENADOS -- PROCEDIMIENTO ALMACENADO PARA CONSULTAR EN UNA TABLA create procedure SP_consultar @fecha datetime as select IdBoleta, IdBoleta ,Nroboleta, Nroboleta ,Fecha from Boleta where @fecha= @fecha=Fecha exec
SP_consultar '12/05/1990'
-- PROCEDIMIENTO ALMACENADO PARA INSERTAR EN UNA TABLA create procedure SP_InsertarCliente (@IdCliente int int, , @NombreCliente nvarchar (30), 30), @Direccion nvarchar (50), 50), @Telefono nchar nchar( (10)) 10)) as INSERT INTO [EJEMPLO]. [EJEMPLO] .[dbo]. [dbo].[Cliente] (IdCliente, IdCliente , NombreCliente , Direccion, Direccion , Telefono) Telefono ) VALUES (@IdCliente , @NombreCliente , @Direccion, @Direccion , @Telefono) @Telefono ) Exec SP_InsertarCliente 1, 1 ,'Carmen' 'Carmen', ,'Cajamarca' 'Cajamarca', ,'210453' SELECT * FROM cLIENTE -- PROCEDIMIENTO ALMACENADO PARA ACTUALIZAR ALTER PROCEDURE SP_consultar @NroBoleta int as select IdBoleta, IdBoleta ,Nroboleta, Nroboleta ,Fecha from Boleta where @NroBoleta= @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 Programación VI CREATE PROCEDURE InsertAddress @Address
NVARCHAR(255) = NULL,
@Country
NVARCHAR(40) = NULL,
@PhoneNumber
NVARCHAR(30) = NULL,
@Fax
NVARCHAR(30) = NULL,
@CustomerId
NVARCHAR(255) = NULL,
@PKId
INT = NULL OUTPUT
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 -------------------------------------------------Ing. Yesenia Alayo
Lenguaje de Programación VI
CREATE PROCEDURE InsertCustomer @PKId
INT = NULL OUTPUT,
@Email
NVARCHAR(50) = NULL,
@Password
BINARY(24) = NULL,
@Name
NVARCHAR(40) = NULL,
@Address
NVARCHAR(255) = NULL,
@Country
NVARCHAR(40) = NULL,
@PhoneNumber
NVARCHAR(30) = NULL,
@Fax
NVARCHAR(30) = NULL
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)
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 Programación VI -- Retrieve Address reference into @AddressId EXEC InsertAddress @Address, @Country, @PhoneNumber, @Fax, @PKId, @AddressId OUTPUT COMMIT TRANSACTION
RETURN 0
Ing. Yesenia Alayo