You are on page 1of 4

Copyright © Todos los Derechos Reservados - Cibertec Perú SAC

Tipo : Tarea
Capítulo : Lenguaje Transact-SQL

I. OBJETIVO

Identificar la importancia del SQL vs. el leguaje T-SQL.

II. DESCRIPCIÓN

1. ¿Cuál es el uso de la variable global @@error? Explique.

SQL Server proporciona una gran cantidad de variables globales, que son muy efectivas
para usar en nuestro Transact-SQL regular. Las variables globales representan un tipo
especial de variable. El servidor siempre mantiene los valores de estas variables. Todas las
variables globales representan información específica del servidor o de una sesión de
usuario actual.

Los nombres de las variables globales comienzan con un prefijo @@. No es necesario que
los declare, ya que el servidor los mantiene constantemente. Son funciones definidas por el
sistema y no se pueden declara
Muchas aplicaciones utilizan procedimientos almacenados en Microsoft SQL Server sin
ningún control de errores en T-SQL en absoluto; en estos casos, el control de errores puede
ser manejado por el código de aplicación que llama a los procedimientos almacenados. Sin
embargo, hay algunas desventajas con ese enfoque. En primer lugar, puede haber
ocasiones en que un procedimiento almacenado no debe proceder en el caso de un error,
o cuando una transacción debe revertirse. Además, la aplicación que se consume puede no
ser capaz de informar del error con precisión.

La manera tradicional de manejar errores en T-SQL es mediante la comprobación de la


variable del sistema @@error. Al hacerlo, es importante darse cuenta de que la variable
@@error restablece tan pronto como se le llama. Por lo tanto, si desea informar sobre el
error o tenga que hacer algo con él, usted debe declarar otra variable para contener y luego
seleccione el error en esa variable, así:

SELECT @err = @@error


IF @err <> 0
PRINT 'Error: ' + ltrim(str(@err))

2. ¿Cómo es utilizado el manejo de las excepciones en SQL Server 2016? Explique.

Al usar el lenguage Transact-SQL debemos tener en cuenta, como en cualquier lenguaje


de programación, que algunas instrucciones nos pueden dar errores debido a los valores
de parámetros de entrada incorrectos o faltantes,
ingresos de datos con tipos incorrectos, falta de datos en un procedimiento o función
definida por el usuario o de manera general en una transacción no finalizada de manera
correcta.

Si ocurre un error dentro de la transacción en un bloque TRY inmediatamente se dirige al


bloque CATCH.
Para poder regresar la información del error tenemos nuevas funciones en SQL Server,
veamos cuales son:

ERROR_NUMBER() : Devuelve el número de error.


ERROR_MESSAGE() : Devuelve el texto completo del mensaje de error. El texto incluye los
valores suministrados para los parámetros sustituibles, como longitudes, nombres de objeto
u horas.
ERROR SEVERITY() : Devuelve la gravedad del error.
ERROR_STATE() : Devuelve el número de estado de error.
ERROR_LINE() : Devuelve el número de línea donde se produjo el error.
ERROR_PROCEDURE() : Devuelve el nombre del procedimiento donde se produjo el erro

3. ¿Qué actividades internas debe realizar un cajero para entregar dinero? Explique.

Descripción del sistema:


Sistema cajero automático

El sistema debe permitir a un usuario con una cuenta bancaria realizar las siguientes
operaciones:
retirar dinero, depositar dinero, cambiar la clave de usuario, consultar el saldo de la cuenta
y hacer transferencias.

Actor Cliente: El cliente debe de poseer una cuenta bancaria, además de contar con dinero
suficiente para realizar la operación de retiro y transferencia, debe además contar con una
“tarjeta bancaria” para hacer uso del cajero automático.

Actor Banco: El banco debe asegurarse del buen funcionamiento de sus cajeros
automáticos (como que tenga dinero suficiente para la opción de retiro) además de respaldar
las operaciones realizadas en el mismo.

Pre-condiciones:
Poseer una cuenta bancaria.
Poseer tarjeta.
Tener saldo suficiente (Para retiros y transferencias).
Disposición:
Cajero--Cliente
Narración:
Ingresar tarjeta en el cajero.
El cajero informa que retendrá la tarjeta temporalmente.
El cajero solicita la contraseña.
El cliente ingresa la contraseña
El cajero valida la contraseña.
Contraseña invalida: Se le informa al cliente que la contraseña es invalida y el número de
intentos restantes.
Sí el número de intentos es sobrepasado la tarjeta será bloqueada.
El cajero muestra las opciones disponibles.
El cliente elige la opción de su preferencia.
Retiro.
El cajero solicita el tipo de cuenta asociada a la tarjeta.
El cliente selecciona el tipo de cuenta
El cajero solicita al cliente la cantidad a retirar.
El cliente ingresa un monto.
El cajero valida que el monto no este sobre el máximo posible.
El cajero valida que la cuenta posea suficiente saldo.
Si no hay suficiente saldo se le informa al cliente que su saldo es insuficiente.
El cajero solicita la clave nuevamente.
El cajero valida la clave.
Contraseña invalida: Se le informa al cliente que la contraseña es invalida y el número de
intentos restantes.
Sí el número de intentos es sobrepasado la tarjeta será bloqueada.
El cliente retira el dinero.
El cajero da al cliente la opción de recibir un recibo.
Sí el cliente acepta se le entregará el recibo.
El cajero informa que ya puede retirar la tarjeta.
El cliente toma la tarjeta.
El cajero vuelve al estado inicial.

4. ¿Cuáles son las sentencias SQL que están utilizándose durante este proceso?
Explique.

Se están utilizando las sentencias BEGIN TRAN, COMMIT TRAN y ROLLBACK TRAN. La
primera sirve para iniciar la transacción. La sentencia ROLLBACK TRAIN funciona si alguna
de las operaciones de una transacción falla, deshaciendo la transacción en su totalidad para
volver al estado inicial, la base de datos antes de empezar. Finalmente, si todas las
operaciones de una transacción se completan con éxito, se marca el fin de una transacción,
para que la base de datos vuelva a estar en un estado consistente, con la sentencia
COMMIT TRAN.
5. ¿Por qué es importante una transacción para retirar dinero de un cajero? Explique.

Para asegurar que la persona que retira es verdaderamente el propietario.

Cibertec Perú S.A.C – SQL y modelamiento de base de datos - SQL Server 2016 1

You might also like