You are on page 1of 21

Lic. Celia Tarquino P.

TRANSAQ-SQL
Doc. Tarquino
VISTAS
 Una vista es una consulta SELECT almacenada
en base de datos con un cierto nombre.

Lic. Celia Tarquino P.


 Las vistas tienen la misma estructura que una
tabla: filas y columnas. La única diferencia es
que solo se almacena de ellas la definición, no los
datos.
 Si no se sabe que se está trabajando con una
vista, nada hace suponer que es así.
 Al igual que con una tabla, se pueden insertar,
actualizar, borrar y seleccionar datos en una
vista.
EJEMPLO - VISTAS

Mostrar el nombre
de cliente, nombre

Lic. Celia Tarquino P.


de cajero , nro y
fecha de venta.
EJEMPLO - VISTAS
create view vst1
as

Lic. Celia Tarquino P.


select vta.nro, vta.fecha, ca.nombre as
nombreCajero, cl.nombre as nombreCliente
from venta vta, cajero ca, cliente cl
where vta.ci_ca=ca.ci and
vta.ci_cl=cl.ci

select * from vst1


EJEMPLO – VISTAS - PROCEDIMIENTOS
create procedure sp1
(@f datetime)

Lic. Celia Tarquino P.


as
begin
select * from vst1 where fecha=@f
end

execute sp1 '1/1/2008'


EJEMPLO – VISTAS - INSERTAR
create view vst2
as

Lic. Celia Tarquino P.


select ci, nombre from cajero
select * from vst2

insert into vst2 values('ca6','Tatina Vidal')


insert into vst2 values('ca7','Hugo Linares')

select * from vst2


select * from cajero
PROCEDIMIENTOS -WIZARD

Lic. Celia Tarquino P.


PROCEDIMIENTOS-EJECUCIÓN

Lic. Celia Tarquino P.


Pars
TRANSACCIONES
 Una transacción es un conjunto de operaciones
Transact SQL que se ejecutan como un único

Lic. Celia Tarquino P.


bloque, es decir, si falla una operación Transact
SQL fallan todas.
 Si una transacción tiene éxito, todas las
modificaciones de los datos realizadas durante la
transacción se confirman y se convierten en una
parte permanente de la base de datos.
 Si una transacción encuentra errores y debe
cancelarse o revertirse, se borran todas las
modificaciones de los datos.
EJEMPLO TRANSACCIONES
Realizar una transacción para actualizar el nombre del cajero, si no
existe o hay algún error descartar al actualización.
create procedure sp3 @nombre varchar(40), @ci varchar(15)

Lic. Celia Tarquino P.


as
declare @error integer
begin tran
update cajero set nombre=@nombre where ci=@ci
set @error=@@ERROR
if (@error<>0) goto TratarError
commit tran
goto fin select * from cajero
TratarError: execute sp3 'Claudia', 'ca1'
print 'Ha ocurrido un error, abortamos la transaccion'
rollback tran
fin:
print 'se realizo la transaccion'
TRANSACCIONES – TRATAMIENTO
EXCEPCIONES

BEGIN TRY

Lic. Celia Tarquino P.


...
END TRY

BEGIN CATCH
...
END CATCH
EJEMPLO TRANSACCIONES

create procedure sp4 @nombre varchar(40), @ci varchar(15)

Lic. Celia Tarquino P.


as
declare @error integer
begin tran
begin try
update cajero set nombre=@nombre where ci=@ci
commit tran
print 'se realizo la transaccion‘
end try
begin catch
print 'Ha ocurrido un error, abortamos la transaccion'
rollback tran
end catch
CURSORES

 Un cursor es un conjunto de registros devuelto


por una instrucción SQL. Técnicamente los

Lic. Celia Tarquino P.


cursores son fragmentos de memoria que
reservados para procesar los resultados de una
consulta SELECT.
Se compone :
 Conjunto de resultados del cursor. El
conjunto (tabla) de filas que resulta de ejecutar
una consulta asociada al cursor.
 Posición del cursor. Un puntero en una fila
dentro del conjunto de resultados del cursor.
CARACTERISTICAS
 Un cursor es un puntero hacia los resultados de
la consulta.

Lic. Celia Tarquino P.


Solo admiten movimiento hacia delante, no es posible volver
hacia atrás en el conjunto de resultados del cursor para
acceder a ellas de nuevo.

Un cursor tiene dos posibles estados:


Abierto: Las filas del conjunto de resultados del cursor se
encuentran disponibles para su lectura o actualización.
Cerrado: El cOnjunto de resultados del cursor no existe.
La reapertura del cursor hace posible ubicar el cursor a la
primera fila.
Existen cursores de lectura y modificación (eliminación o
actualización)
Lic. Celia Tarquino P.
PROCESO DE CURSORES
Lic. Celia Tarquino P.
EJEMPLO-CURSORES
EJEMPLO-CURSORES-PROCEDIMIENTOS
create procedure sp6
as
Generar el código
de clientes.
declare @pat varchar(15)

Lic. Celia Tarquino P.


declare @mat varchar(15)
declare @nom varchar(15)
declare @ci varchar(10)
declare @codigo varchar(10)
declare curCl CURSOR
for
select paterno,materno,nombre,ci from cliente
open curCl
fetch curCl into @pat,@mat,@nom,@ci
while (@@FETCH_STATUS = 0)
begin
set @codigo=left(@pat,1)+left(@mat,1)+left(@nom,1)
print 'El codigo de '+@nom+' '+@pat+' '+@mat+'es -> '+@codigo
fetch curCl into @pat,@mat,@nom,@ci
end
deallocate curCl
Lic. Celia Tarquino P.
FUNCIONES-CADENA
INDICES
 Los índices permiten al motor de base de datos
acceder a los datos más rápidamente

Lic. Celia Tarquino P.


SINONIMOS
 Permite el manejo de objetos con varios nombres.

Lic. Celia Tarquino P.


CREATE SYNONYM CAJ FOR CAJERO;
Drop SYNONYM nombcajero
REGLAS
 O VALIDACIONES de los campos de la base de
datos.

Lic. Celia Tarquino P.