Академический Документы
Профессиональный Документы
Культура Документы
Objetivo
Materiales y
Computadora con SQL Server 2008.
Introducción
Trigger DDL
ON DATABASE
AS
BEGIN
END
Manejo de datos
Cuando se quiere agregar, actualizar o eliminar datos de una base de datos, se ejecutan
sentencias DML. Una colección de sentencias DML que forman una unidad lógica de
trabajo es llamada transacción.
Considere una base de datos de un banco. Cuando un cliente del banco transfiere dinero
de su cuenta de ahorros a su cuenta de cheques, la transacción puede consistir de tres
operaciones separadas:
Transacción
Una transacción es un conjunto de operaciones que van a ser tratadas como una única
unidad. Estas transacciones deben cumplir 4 propiedades fundamentales comúnmente
conocidas como ACID (atomicidad, coherencia, asilamiento y durabilidad).
La transacción más simple en SQL Server es una única sentencia SQL. Por ejemplo:
UPDATE Products SET UnitPrice=20 WHERE ProductName ='Chai'
Por supuesto este tipo de transacciones no requieren de nuestra intervención puesto que
el sistema se encarga de todo. Sin embargo si hay que realizar varias operaciones y
queremos que sean tratadas como una unidad tenemos que crear esas transacciones de
manera explícita.
Una transacción es un conjunto de operaciones tratadas como una sola. Este conjunto de
operaciones debe marcarse como transacción para que todas las operaciones que la
conforman tengan éxito o todas fracasen.
La sentencia que se utiliza para indicar el comienzo de una transacción es 'BEGIN TRAN'.
Si alguna de las operaciones de una transacción falla hay que deshacer la transacción en
su totalidad para volver al estado inicial en el que estaba la base de datos antes de
empezar. Esto se consigue con la sentencia 'ROLLBACK TRAN'.
Si todas las operaciones de una transacción se completan con éxito hay que marcar el fin
de una transacción para que la base de datos vuelva a estar en un estado consistente con
la sentencia 'COMMIT TRAN'.
Procedimiento
Parte 1: Iniciando sesión desde SQL Server Managment Studio
Para conectarse con el servidor de base de datos elija los siguientes parámetros de
autenticación:
Tipo de servidor: Database Engine
Nombre del servidor: SALA07-PCNumMaquina
Nota: NumMaquina es el numero de maquina local
Autenticación: SQL Server Authentication
Login: sa
Password: 123456
Digite: Select * from información_tienda , para verificar que los datos están
ingresados
Digite: Select * from ventas_tienda, verifique que no existe ningún valor en esa tabla
Ejecute el siguiente script y luego revise la tabla ventas_tiendas
ACTUALIZAR
Inicialmente ese campo aparece vacio en todas las columnas y queremos que ese campo
contenga la venta + el 13% del iva, para esto utilizamos la siguiente sentencia.
USO DE VARIABLES
Una variable es un valor identificado por un nombre (identificador) sobre el que podemos
realizar modificaciones.
En Transact SQL los identificadores de variables deben comenzar por el carácter @, es
decir, el nombre de una variable debe comenzar por @. Para declarar variables en
Transact SQL debemos utilizar la palabra clave declare, seguido del identificador y tipo de
datos de la variable.
Ejemplo
declare @nombre varchar(50)
set @nombre = 'Utilizando variables en SQL'
print @Nombre -- Imprime por pantalla el valor de @nombre.
AS
BEGIN
ROLLBACK TRANSACTION
END
TRANSACCIONES
Como se mencionó en la introducción una transacción es un conjunto de operaciones tratadas
como una sola. Este conjunto de operaciones debe marcarse como transacción para que todas las
operaciones que la conforman tengan éxito o todas fracasen.
La sentencia que se utiliza para indicar el comienzo de una transacción es 'BEGIN TRAN'. Si alguna
de las operaciones de una transacción falla hay que deshacer la transacción en su totalidad para
volver al estado inicial en el que estaba la base de datos antes de empezar. Esto se consigue con la
sentencia 'ROLLBACK RAN'. Si todas las operaciones de una transacción se completan con éxito
hay que marcar el fin de una transacción para que la base de datos vuelva a estar en un estado
consistente con la sentencia 'COMMIT TRAN'
BEGIN TRAN
insert into PRUEBA values('Mario','Mendez')
insert into PRUEBA values('Marcela','Abarca')
ROLLBACK TRAN
Si desea que los datos sean insertados de una sola vez tendrá que digitarlo de la
siguiente manera
BEGIN TRAN
insert into PRUEBA values('Mario','Mendez')
insert into PRUEBA values('Marcela','Abarca')
COMMIT TRAN
Ejemplo 2
declare @venta float, @tienda varchar(25),@buscar varchar(25)
set @buscar='Soyapango'
Begin tran
select @venta=venta,@tienda=tienda from ventas_tienda where
tienda=@buscar
--Insertando datos utilizando variables
insert into informacion_tienda values(@tienda,@venta+100,'2011-02-
21','Secreto','credito')
--concatenando valores
print 'Tienda'+ ' '+@tienda
--no se puede concatenar texto con numeros hay que hacer conversión
print 'venta'+ ' '+CAST(@venta as varchar)
COMMIT TRAN
Ejemplo 3
--insertando datos en tabla ventas tienda utilizando variables
declare @tienda varchar(25), @venta float, @fecha datetime, @ventaiva
float
set @tienda='Cuscatancingo'
set @venta=100
set @fecha='2010-02-04'
set @ventaiva=@venta*1.13
begin tran
INSERT INTO ventas_tienda values(@tienda,@venta,@fecha,@ventaiva)
COMMIT TRAN
PRINT 'VALORES INSERTADOS CON EXITO'
PRINT 'TIENDA'+@tienda
Análisis de resultados
Cree una base de datos de nombre ALMACEN con las siguientes tablas
Productos pedidos
Cantidad=20
codigo='prod01'
fecha='2010-02-02'
Pedido=1
La existencia actual del prod01 es 100, cuando se realice esa inserción, se deberá
actualizar a 80, al final de la transacción imprimir un mensaje que indique el total del
pedido, multiplicando el precio del producto por la cantidad del pedido.