option
Cuestiones
ayuda
daypo
buscar.php

ADMINISTRACION DE BASE DE DATOS

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
ADMINISTRACION DE BASE DE DATOS

Descripción:
EXAMEN SIMULADOR

Fecha de Creación: 2026/07/19

Categoría: Informática

Número Preguntas: 58

Valoración:(2)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

El prefijo ___ se utiliza para indicar que es una tabla temporal local. $. ##. %. #.

Se desea crear un cursor para reducir el precio de todos los teléfonos en un 40%, pero solo de aquellos que haya sido utilizado menos de 3 veces en una venta y que su imei empiece con una vocal. ¿Cuál de los siguientes enunciados es el correcto de acuerdo a la funcionalidad de los siguientes códigos? 1: DECLARE @IDTELEFONO INT DECLARE @PRECIO REAL DECLARE CURSOR_TELEFONO CURSOR FOR SELECT T.IDTELEFONO, T.PRECIO * 0.60 FROM TELEFONO T LEFT JOIN VENTADETALLE P on P.IDTELEFONO = T.IDTELEFONO WHERE T.IMEI LIKE '[AEIOU]%' GROUP BY T.IDTELEFONO, T.PRECIO HAVING COUNT(*) < 3 OPEN CURSOR_TELEFONO FETCH CURSOR_TELEFONO INTO @IDTELEFONO, @PRECIO WHILE @@FETCH_STATUS = 0 BEGIN UPDATE TELEFONO SET PRECIO = @PRECIO WHERE IDTELEFONO = @IDTELEFONO FETCH NEXT FROM CURSOR_TELEFONO INTO @IDTELEFONO, @PRECIO END CLOSE CURSOR_TELEFONO DEALLOCATE CURSOR_TELEFONO 2:DECLARE @IDTELEFONO INT, @PRECIO REAL DECLARE CURSOR_TELEFONO CURSOR FOR SELECT T.IDTELEFONO, T.PRECIO * 0.40 FROM TELEFONO T LEFT JOIN VENTADETALLE P on P.IDTELEFONO = T.IDTELEFONO AND UPPER(LEFT(IMEI, 1)) IN ('A', 'E', 'I', 'O', 'U') GROUP BY T.IDTELEFONO, T.PRECIO HAVING COUNT(*) <= 2 OPEN CURSOR_TELEFONO FETCH NEXT FROM CURSOR_TELEFONO INTO @IDTELEFONO, @PRECIO WHILE @@FETCH_STATUS = 0 BEGIN UPDATE TELEFONO SET PRECIO -= @PRECIO WHERE IDTELEFONO = @IDTELEFONO FETCH NEXT FROM CURSOR_TELEFONO INTO @IDTELEFONO, @PRECIO END CLOSE CURSOR_TELEFONO DEALLOCATE CURSOR_TELEFONO. Solo el código 2 funciona. Solo el código 1 funciona. Ningún código funciona. Ambos códigos funcionan.

Se desea crear un procedimiento almacenado para crear un cliente o editar un cliente aplicando el uso de transacciones y manejo de excepciones. Se debe tomar en cuenta lo siguiente. 1. Se debe enviar todos los parámetros a excepción del id del cliente 2. El número de cédula ya existe entonces debe editar al cliente caso contrario crearlo. 3. Si la fecha de nacimiento es nula entonces debe tomar la fecha actual.¿Cuál de las siguientes líneas de código contiene errores que evitan que funcione? 1. CREATE PROC SP_CLIENTE 2. @NOMBRES VARCHAR(100), 3. @CEDULA VARCHAR(10), 4. @TELEFONO VARCHAR(10), 5. @FECHA_NAC DATE, 6. @GENERO INT 7. AS 8. BEGIN TRY 9. BEGIN TRANSACTION 10. DECLARE @IDCLIENTE INT = 0 11. SELECT @IDCLIENTE = IDCLIENTE FROM CLIENTE WHERE CEDULA = @CEDULA 12. IF @IDCLIENTE IS NULL 13. BEGIN 14. SELECT @FECHA_NAC = IIF(@FECHA_NAC IS NULL, GETDATE(), @FECHA_NAC) 15. SELECT @IDCLIENTE = ISNULL(MAX(IDCLIENTE),0) + 1 FROM CLIENTE 16. INSERT INTO CLIENTE VALUES(@IDCLIENTE,@NOMBRES,@CEDULA,@TELEFONO,@FECHA_NAC,@GENERO) 17. END 18. ELSE 19. BEGIN 20. UPDATE CLIENTE SET NOMBRES = @NOMBRES, TELEFONO = @TELEFONO, FECHA_NAC = @FECHA_NAC, GENERO = GENERO WHERE CEDULA = @CEDULA 21. END 22. COMMIT TRANSACTION 23. END TRY 24. BEGIN CATCH 25. ROLLBACK TRANSACTION 26. SELECT ERROR_MESSAGE() 27. END CATCH. Línea 20. Línea 12. Línea 14. Línea 15.

¿Cuál de los siguientes enunciados es falso con respecto a las funciones en SQLSERVER?. Solo se puede anidar hasta 32 funciones al momento de ejecutar. No pueden insertar datos en otra tabla con la instrucción INTO ejemplo. Puede invocar procedimientos dentro de una función. La principal ventaja de una función es que esta puede reutilizarse en código.

¿Qué es el @@TRANCOUNT?. Es un contador de transacciones. Es un contador de consultas. Es un contador de excepciones. Es un contador de filas del cursor.

Es una variable que nos permite recorrer un conjunto de resultados obtenidos a través de una sentencia SELECT fila por fila. Trigger. Cursor. Transacciones. Procedimiento almacenado.

Del siguiente diagrama: Se desea crear un procedimiento almacenado para crear un cliente o editar un comedor aplicando el uso de transacciones y manejo de excepciones. Se debe tomar en cuenta lo siguiente. 1. Se debe enviar todos los parámetros a excepción del id del comedor 2. El número de ruc ya existe entonces debe editar el comedor caso contrario crearlo. 3. Si el teléfono es nulo entonces debe tomar 9999999999. ¿Cuál de las siguientes líneas de código contiene errores que evitan que funcione? 1. CREATE PROC SP_COMEDOR 2. @NOMBRES VARCHAR(100), 3. @RUC VARCHAR(13), 4. @TELEFONO VARCHAR(10), 5. @DIRECCION VARCHAR(500), 6. @CODIGO VARCHAR(8) 7. AS 8. BEGIN TRY 9. BEGIN TRANSACTION 10. DECLARE @IDCOMEDOR INT = NULL 11. SELECT @IDCOMEDOR = IDCOMEDOR FROM COMEDOR WHERE RUC = @RUC 12. IF @IDCOMEDOR IS NULL 13. BEGIN 14. SELECT @TELEFONO = IIF(@TELEFONO IS NULL, 9999999999, @TELEFONO) 15. SELECT @IDCOMEDOR = ISNULL(MAX(IDCOMEDOR),0) + 1 FROM COMEDOR 16. INSERT INTO COMEDOR VALUES(,@NOMBRES,@IDCOMEDOR,@RUC,@TELEFONO,@DIRECCION,@CODIGO) 17. END 18. ELSE 19. BEGIN 20. UPDATE COMEDOR SET NOMBRE = @NOMBRES, TELEFONO = @TELEFONO, DIRECCION = @DIRECCION, CODIGO = CODIGO WHERE RUC = @RUC 21. END 22. COMMIT TRANSACTION 23. END TRY 24. BEGIN CATCH 25. ROLLBACK TRANSACTION 26. SELECT ERROR_MESSAGE() 27. END CATCH. Línea 14. Línea 16. Línea 12. Línea 20.

Si ________ encuentra errores y debe cancelarse o revertirse, se borran todas las modificaciones de los datos. un procedimiento almacenado. una consulta. una transacción. un cursor.

Seleccionar el enunciado incorrecto. ¿Cuándo se producen errores en las transacciones?. Cortes fortuitos de energía. Datos inválidos de reglas de validación. Errores de hardware o transferencia de información. Actualizaciones del sistema.

¿Cuál es la sentencia para cerrar un cursor?. CLOSE ALL. CLOSE. OPEN. DEALLOCATE.

La palabra reservada _________ permite realizar búsquedas en un rango de valores. IN. BETWEEN. LIKE. EXISTS.

Devuelve el número de línea en el que se ha producido el error. ERROR_LINE. ERROR_MESSAGE. ERROR_STATE. ERROR_NUMBER.

Se desea crear la base de datos llamada Examen con un archivo de datos de 10Mb, un tamaño máximo de 20Mb y un crecimiento de 1Mb., el archivo de registro log debe asumir los valores por default. ¿Cuáles de las siguientes consultas será la correcta?. Use Master GO Create Database Examen On Primary (NAME = 'Prueba2_Data', FILENAME = 'C:sqlserver\data\Data.mdf', SIZE = 10Mb, MAXSIZE = 1Mb, FILEGROWTH= 20Mb). Use Master GO Create Database Examen On Primary (NAME = 'Prueba2_Data', FILENAME = 'C:sqlserver\data\Data.mdf', SIZE = 20Mb, MAXSIZE = 1Mb, FILEGROWTH= 20Mb). Use Master GO Create Database Examen On Primary (NAME = 'Prueba2_Data', FILENAME = 'C:sqlserver\data\Data.mdf', SIZE = 10Mb, MAXSIZE = 20Mb, FILEGROWTH= 1Mb). Use Master GO Create DATABASE Examen On Primary (NAME = 'Prueba2_Data', FILENAME = 'C:sqlserver\data\Data.mdf', SIZE = 20Mb, MAXSIZE = 10Mb, FILEGROWTH= 1Mb).

En el bloque _____ se captura el error en caso de que se codifique una acción o solo presentar un mensaje. CATCH. BEGIN TRANSACTION, COMMIT TRANSACTION. BEGIN, END. TRY.

Del siguiente diagrama: Se desea crear un cursor para reducir el precio de las plantas en un 40% pero solo de aquellas que hayan sido utilizadas más de 2 veces en una venta y que su nombre no termine en una vocal. ¿Cuál de los siguientes enunciados es el correcto de acuerdo a la funcionalidad de los siguientes códigos? 1: DECLARE @IDCOMIDA INT DECLARE @PRECIO REAL DECLARE CURSOR_COMIDA CURSOR FOR SELECT P.IDCOMIDA, P.PRECIO * 0.60 FROM COMIDA P LEFT JOIN VENTADETALLE V on P.IDCOMIDA = P.IDCOMIDA WHERE NOMBRE LIKE '%[^AEOIOU]' GROUP BY P.IDCOMIDA, P.PRECIO HAVING COUNT(*) >= 3 OPEN CURSOR_COMIDA FETCH CURSOR_COMIDA INTO @IDCOMIDA, @PRECIO WHILE @@FETCH_STATUS = 0 BEGIN UPDATE COMIDA SET PRECIO = @PRECIO WHERE IDCOMIDA = @IDCOMIDA FETCH CURSOR_COMIDA INTO @IDCOMIDA, @PRECIO END CLOSE CURSOR_COMIDA DEALLOCATE CURSOR_COMIDA 2:DECLARE @IDCOMIDA INT, @PRECIO REAL DECLARE CURSOR_COMIDA CURSOR FOR SELECT P.IDCOMIDA, PRECIO * 0.40 FROM COMIDA P, VENTADETALLE V WHERE P.IDCOMIDA = V.IDCOMIDA AND NOMBRE NOT LIKE '%[AEOIOU]' GROUP BY P.IDCOMIDA, PRECIO HAVING COUNT(*) > 2 OPEN CURSOR_COMIDA FETCH NEXT FROM CURSOR_COMIDA INTO @IDCOMIDA, @PRECIO WHILE @@FETCH_STATUS = 0 BEGIN UPDATE COMIDA SET PRECIO -= @PRECIO WHERE IDCOMIDA = @IDCOMIDA FETCH NEXT FROM CURSOR_COMIDA INTO @IDCOMIDA, @PRECIO END CLOSE CURSOR_COMIDA DEALLOCATE CURSOR_COMIDA. Ambos códigos funcionan. Ningún código funciona. El código 2 funciona. El código 1 funciona.

Devuelve el último ID generado para cualquier tabla de la sesión activa y en el ámbito actual. Es la función que más se utiliza. @@IDENTITY. @@FETCH_STATUS. SCOPE_IDENTITY(). IDENT_CURRENT('nombre_tabla').

Graba físicamente todo lo actuado dentro de la transacción. RollBack Transaction. Begin Transaction. Commit Transaction. RAISERROR.

¿Cuál de los siguientes enunciados es falso con respecto a los triggers en SQLSERVER?. Un trigger (disparador) en una base de datos es un procedimiento que se ejecuta cuando se cumple una determinada condición al realizar una operación. Los disparadores, a diferencia de las restricciones "check", no pueden hacer referencia a campos de otras tablas. No existe una tabla Updated ya que la actualización reside en Deleted e Inserted. Existen 2 tipos de triggers: Triggers DML y Triggers DDL.

Del siguiente diagrama: Deseo modificar un modelo. ¿Cuál de los siguientes procedimientos es el correcto?. CREATE PROCEDURE MOD_MODELO (@NOM VARCHAR(50),@MAR VARCHAR(50),@ID INT) AS UPDATE MODELO SET NOMBRE=@NOM, IDMARCA=@MAR WHERE IDMODELO=@ID. CREATE PROCEDURE MOD_MODELO (@NOM VARCHAR(50),@MAR INT,@ID INT) AS DECLARE @IDMAR VARCHAR(50) = (SELECT IDMARCA FROM MARCA WHERE NOMBRE = @MAR) IF @IDMAR NOT IS NULL UPDATE MODELO SET NOMBRE=@NOM, IDMARCA=@MAR WHERE IDMODELO=@ID. CREATE PROCEDURE MOD_MODELO (@NOM VARCHAR(50),@MAR VARCHAR(50),@ID INT) AS DECLARE @IDMAR INT = (SELECT IDMARCA FROM MARCA WHERE NOMBRE LIKE @MAR) IF @IDMAR NOT IS NULL UPDATE MODELO SET NOMBRE=@NOM, IDMARCA=@IDMAR WHERE IDMODELO=@ID. CREATE PROCEDURE MOD_MODELO (@NOM VARCHAR(50),@MAR VARCHAR(50)) AS UPDATE MODELO SET NOMBRE=@NOM, IDMARCA=@MAR WHERE IDMODELO=@ID.

Del siguiente diagrama: Deseo obtener el listado de teléfonos con su modelo y su marca. ¿Cuál de las siguientes funciones es la correcta?. CREATE FUNCTION F_LIST_TEL () RETURNS INT AS BEGIN DECLARE @N INT SELECT @N = COUNT(*) FROM TELEFONO T INNER JOIN MODELO M ON T.IDMODELO=M.IDMODELO INNER JOIN MARCA MA ON M.IDMARCA=MA.IDMARCA END. CREATE FUNCTION F_LIST_TEL AS SELECT * FROM TELEFONO T INNER JOIN MODELO M ON T.IDMODELO=M.IDMODELO INNER JOIN MARCA MA ON M.IDMARCA=MA.IDMARCA. CREATE FUNCTION F_LIST_TEL () RETURNS TABLE RETURN( SELECT * FROM TELEFONO T INNER JOIN MODELO M ON T.IDMODELO=M.IDMODELO INNER JOIN MARCA MA ON M.IDMARCA=MA.IDMARCA). CREATE FUNCTION F_LIST_TEL () RETURNS CHAR(1) AS SELECT * FROM TELEFONO T INNER JOIN MODELO M ON T.IDMODELO=M.IDMODELO INNER JOIN MARCA MA ON M.IDMARCA=MA.IDMARCA.

Un cursor es _____ que nos permite ______ un conjunto de _____ obtenidos a través de una sentencia SELECT fila por fila. un método, recorrer, datos. una variable, recorrer, resultados. una variable, consultar, variables. un mecanismo, consultar, datos.

Un índice _____ es aquel en el que no se permite que dos filas tengan el mismo valor de clave del índice. único. clúster. no clúster. final.

La extensión recomendada para el archivo físico es mdf (master data file). Archivos Log. Archivos de datos temporales. Archivos de Datos Primarios. Archivos de Datos Secundarios.

Deseo obtener todos las comidas que no hayan sido utilizadas en una venta. ¿Cuál consulta será la correcta?. SELECT C.* FROM COMIDA C LEFT JOIN VENTADETALLE D ON C.IDCOMIDA = D.IDCOMIDA WHERE D.IDCOMIDA IS NULL AND D.IDCOMIDA = 0. SELECT * FROM COMIDA C WHERE C.IDCOMIDA NOT IN (SELECT IDCOMIDA FROM DETALLEVENTA). SELECT * FROM COMIDA WHERE NOT EXISTS (SELECT 1 FROM VENTADETALLE D WHERE D.IDCOMIDA = C.IDCOMIDA). SELECT S.* FROM SERVICIO S LEFT JOIN DETALLEPLANILLA DP ON S.IDSERVICIO = DP.IDSERVICIO WHERE DP.IDSERVICIO IS NULL.

¿Cuál es la sentencia para eliminar una base de datos?. ERASE DATABASE NOMBRE_BASE. DROP DATABASE NOMBRE_BASE. DELETE DATABASE NOMBRE_BASE. REMOVE DATABASE NOMBRE_BASE.

El otro bloque es un _____ en donde se puede presentar mensajes o sentencias para identificar errores y dar por terminadas las instrucciones. TRY. CATCH. BEGIN, END. BEGIN TRANSACTION, COMMIT TRANSACTION.

Evalúa un conjunto de condiciones y retorna como resultado una expresión. CASE. EXISTS. IN. ANY.

Crea un índice en el que el orden lógico de los valores de clave determina el orden físico de las filas correspondientes de la tabla. UNIQUE. CLUSTERED. CLUSTERED, NONCLUSTERED. NONCLUSTERED.

La palabra clave ______ permite evaluar si el valor de una columna no se encuentra en el conjunto de valores retornados por una subconsulta. ALL. ANY. NOT IN. EXISTS.

¿Cuántos índices no clúster se puede tener en una tabla?. 9999. 1000. 999. 1099.

Es la indicación de que se produjo un error en el programa. Consultas. Transacciones. Funciones. Excepciones.

Una tabla usualmente tiene una columna (o una combinación de columnas) que identifica unívocamente cada fila de la tabla. Restricciones Unique. Restricciones Check. Restricciones Foreign Key. Restricciones Primary Key.

Deseo obtener todas las marcas y la cantidad de modelos que tiene asociado. ¿Cuál de los siguientes enunciados es correcto respecto a los siguientes códigos propuestos?. Ninguna consulta funciona. Solo la consulta 1 funciona. Las 2 consultas funcionan. Solo la consulta 2 funciona.

Se desea presentar el nombre del cliente y la edad, ¿Cuál consulta será la correcta?. SELECT NOMBRES, 2024- YEAR(C.FECHA_NACIMIENTO) FROM CLIENTE C. SELECT NOMBRES, DATEDIFF(YEAR, FECHA_NAC, GETDATE()) FROM CLIENTE. SELECT NOMBRES, DATEDIFF(FECHA_NAC, YEAR, GETDATE()) FROM CLIENTE. SELECT NOMBRES, YEAR(GETDATE())- YEAR(C.FECHA_NAC) FROM CLIENTE.

Indica que la condición se cumplirá si la comparación es cierta para al menos un elemento del conjunto. IN. ALL. ANY. EXISTS.

Son instrucciones que nos ayudan a controlar la correcta ejecución de múltiples sentencias en una misma ejecución. Funciones. Excepciones. Consultas. Transacciones.

Definida por el usuario es una rutina de Transact-SQL o Common Language Runtime (CLR) que acepta parámetros, realiza una acción, como un cálculo complejo, y devuelve el resultado de esa acción como un valor. Procedimientos Almacenados. Funciones. Triggers. Cursores.

Es una unidad de trabajo compuesta por diversas tareas, cuyo resultado final debe ser que se ejecuten todas o ninguna de ellas. Excepciones. Funciones. Transacciones. Consultas.

Relacionar correctamente cada concepto con su extensión correspondiente. 1B, 2B, 3C. 1A, 2C, 3B. 1A, 2B, 3C. 1B, 2C, 3B.

La palabra reservada _____ permite realizar búsqueda que coincida con una lista de valores. LIKE. EXISTS. IN. BETWEEN.

Se refiere a una estructura de control utilizada para el recorrido (y potencial procesamiento) de los registros del resultado de una consulta. Transacciones. Procedimiento almacenado. Cursor. Trigger.

Comprueba si un campo se encuentra dentro de un determinado rango. LIKE. BETWEEN. EXISTS. IN.

Solo está disponible en las operaciones INSERT y UPDATE y en ella están los valores resultantes después de la inserción o actualización. selected. updated. inserted. deleted.

Se desea modificar el tamaño de caracteres de la columna nombres de la tabla CLIENTE en 100 a 200. ¿Cuál de las siguientes líneas de código es la correcta?. ALTER TABLE CLIENTE ALTER COLUMN NOMBRES VARCHAR(200). ALTER TABLE CLIENTE MODIFY COLUMN NOMBRES VARCHAR(200). ALTER TABLE CLIENTE EDIT COLUMN NOMBRES VARCHAR(200). ALTER TABLE CLIENTE COLUMN NOMBRES TYPE VARCHAR(200).

Relaciona dos tablas e incluye en una tercera sólo los registros que satisfacen la condición del Join. FULL JOINS. INNER JOINS. OUTER JOINS. CROSS JOINS.

Del siguiente diagrama: Se desea crear un cursor para reducir el precio de las películas en un 40% pero solo aquellos que su nombre empiece empiecen con una vocal y que no hayan sido utilizado más de 3 veces en una venta. ¿Cuál de las siguientes líneas de código contiene errores que evitan que funcione? 1. DECLARE @IDPELICULA INT 2. DECLARE @PRECIO REAL 3. DECLARE CURSOR_PELICULA CURSOR 4. FOR SELECT A.IDPELICULA, A.PRECIO * 0.60 FROM PELICULA A JOIN VENTADETALLE D ON D.IDPELICULA = A.IDPELICULA 5. WHERE A.NOMBRE NOT LIKE '[^AEIOU]%' 6. GROUP BY A.IDPELICULA 7. HAVING COUNT(*) <= 2 8. OPEN CURSOR_PELICULA 9. FETCH NEXT FROM CURSOR_PELICULA INTO @IDPELICULA, @PRECIO 10. WHILE @@FETCH_STATUS = 0 11. BEGIN 12. UPDATE PELICULA SET PRECIO = @PRECIO WHERE IDPELICULA = @IDPELICULA 13. FETCH CURSOR_PELICULA INTO @IDPELICULA, @PRECIO 14. END 15. CLOSE CURSOR_PELICULA 16. DEALLOCATE CURSOR_PELICULA. Línea 5. Línea 3. Línea 6. Línea 8.

Del siguiente diagrama: Deseo obtener el listado el id del cliente, nombres, sexo transformado a texto (1=hombre, 2=mujer) y la edad del cliente. ¿Cuál de las siguientes consultas es la correcta?. SELECT IDCLIENTE, NOMBRES, CASE GENERO WHEN 1 THEN 'HOMBRE' WHEN 2 THEN 'MUJER' END CASE 'SEXO', DATEDIFF(YEAR, FECHA_NAC, GETDATE()) FROM CLIENTE. SELECT IDCLIENTE, NOMBRES, CASE GENERO WHEN 1 THEN 'HOMBRE' ELSE 'MUJER' END 'SEXO', DATEDIFF(YEAR, FECHA_NAC, GETDATE()) FROM CLIENTE. SELECT IDCLIENTE, NOMBRES, CASE SEXO WHEN 1 THEN 'HOMBRE' WHEN 2 THEN 'MUJER' END 'SEXO', DATEDIFF(YEAR, FECHA_NAC, GETDATE()) FROM CLIENTE. SELECT C.IDCLIENTE, C.NOMBRES, 'SEXO' = CASE C.GENERO WHEN 1 THEN 'HOMBRE' WHEN 2 THEN 'MUJER' END, YEAR(GETDATE()) - YEAR(C.FECHA_NAC) FROM CLIENTE.

Una clave ajena es una columna o combinación de columnas usadas para establecer y asegurar una conexión entre dos tablas. Restricciones Check. Restricciones Primary Key. Restricciones Foreign Key. Restricciones Unique.

Del siguiente diagrama: Deseo obtener el listado de teléfonos con su modelo y su marca. ¿Cuál de las siguientes funciones es la correcta?. CREATE FUNCTION F_LIST_TEL () RETURNS TABLE RETURN( SELECT * FROM TELEFONO T INNER JOIN MODELO M ON T.IDMODELO=M.IDMODELO INNER JOIN MARCA MA ON M.IDMARCA=MA.IDMARCA). CREATE FUNCTION F_LIST_TEL () RETURNS CHAR(1) AS SELECT * FROM TELEFONO T INNER JOIN MODELO M ON T.IDMODELO=M.IDMODELO INNER JOIN MARCA MA ON M.IDMARCA=MA.IDMARCA. CREATE FUNCTION F_LIST_TEL AS SELECT * FROM TELEFONO T INNER JOIN MODELO M ON T.IDMODELO=M.IDMODELO INNER JOIN MARCA MA ON M.IDMARCA=MA.IDMARCA. CREATE FUNCTION F_LIST_TEL () RETURNS INT AS BEGIN DECLARE @N INT SELECT @N = COUNT(*) FROM TELEFONO T INNER JOIN MODELO M ON T.IDMODELO=M.IDMODELO INNER JOIN MARCA MA ON M.IDMARCA=MA.IDMARCA END.

Es una variable que nos permite recorrer un conjunto de resultados obtenidos a través de una sentencia SELECT fila por fila. Transacciones. Trigger. Cursor. Procedimiento almacenado.

Del siguiente diagrama: Se desea crear un procedimiento almacenado con cursor para otorgar un descuento del en las ventas de los clientes debe aplicar el uso de transacciones y manejo de excepciones. Se debe tomar en cuenta lo siguiente. 1. Si el cliente no existe entonces no debe realizar ningún proceso. 2. Si la edad del cliente está entre un rango de 20 a 40 se le otorga un descuento del 30% caso contrario 15%. 3. Solo debe tomar en cuenta las ventas del año actual. ¿Cuál de los siguientes enunciados es el correcto de acuerdo a la funcionalidad de los siguientes códigos? 1: CREATE OR ALTER PROCEDURE SP_DESCUENTOS @CEDULA VARCHAR(10) AS BEGIN TRY BEGIN TRANSACTION DECLARE @IDCLIENTE INT, @EDAD INT SELECT @IDCLIENTE, @EDAD = IDCLIENTE, DATEDIFF(YEAR, FECHA_NAC, GETDATE()) FROM CLIENTE WHERE CEDULA = @CEDULA IF @IDCLIENTE IS NOT NULL BEGIN DECLARE @IDVENTA INT DECLARE @DESCUENTO REAL = 0.15 IF @EDAD BETWEEN 20 AND 40 SET @DESCUENTO = 0.30 DECLARE CURSOR_VENTA CURSOR FOR SELECT IDVENTA FROM VENTA WHERE YEAR(FECHA_REGISTRO) = 2023 AND IDCLIENTE = @IDCLIENTE OPEN CURSOR_VENTA FETCH CURSOR_VENTA INTO @IDVENTA WHILE @@FETCH_STATUS = 0 BEGIN UPDATE VENTA SET DESCUENTO += TOTAL * @DESCUENTO, TOTAL - = TOTAL * @DESCUENTO WHERE IDVENTA = @IDVENTA FETCH NEXT FROM CURSOR_VENTA INTO @IDVENTA END CLOSE CURSOR_VENTA DEALLOCATE CURSOR_VENTA END COMMIT TRANSACTION END TRY BEGIN CATCH ROLLBACK TRANSACTION SELECT ERROR_MESSAGE() END CATCH 2: CREATE PROC SP_DESCUENTOS @CEDULA VARCHAR(10) AS BEGIN TRY BEGIN TRANSACTION DECLARE @IDCLIENTE INT, @EDAD INT = 0 SELECT @IDCLIENTE = IDCLIENTE FROM CLIENTE WHERE CEDULA = @CEDULA SELECT @EDAD = YEAR(FECHA_NAC) - YEAR(GETDATE()) FROM CLIENTE WHERE CEDULA = @CEDULA IF @IDCLIENTE IS NOT NULL BEGIN DECLARE @IDVENTA INT DECLARE @DESCUENTO REAL DECLARE CURSOR_VENTA CURSOR FOR SELECT V.IDVENTA, CASE WHEN @EDAD BETWEEN 20 AND 40 THEN V.TOTAL * 0.30 ELSE V.TOTAL * 0.15 END FROM VENTA V WHERE YEAR(V.FECHA_REGISTRO) = 2023 AND V.IDCLIENTE = @IDCLIENTE OPEN CURSOR_VENTA FETCH CURSOR_VENTA INTO @IDVENTA, @DESCUENTO WHILE @@FETCH_STATUS = 0 BEGIN UPDATE VENTA SET DESCUENTO += @DESCUENTO, TOTAL -= @DESCUENTO WHERE IDVENTA = @IDVENTA FETCH CURSOR_VENTA INTO @IDVENTA, @DESCUENTO END CLOSE CURSOR_VENTA DEALLOCATE CURSOR_VENTA END COMMIT TRANSACTION END TRY BEGIN CATCH ROLLBACK TRANSACTION SELECT ERROR_MESSAGE() END CATCH. Solo el código 2 funciona. Ningún código funciona. Ambos códigos funcionan. Solo el código 1 funciona.

SQL Server soporta cuatro clases principales de restricciones. ¿Cuál de los siguientes términos no es una restricción?. PRIMARY KEY. CHECK. ISNULL. FOREIGN KEY.

Este tipo de archivos contiene la información necesaria para el proceso de recuperación de la base de datos. Archivos de Datos Secundarios. Archivos de Datos Primarios. Archivos de datos temporales. Archivos Log.

Del siguiente diagrama: Deseo presentar el total de ventas agrupados por modelo de teléfono. ¿Cuál de las siguientes consultas es la correcta?. SELECT NOMBRE AS MODELO, SUM(TOTAL) AS TOTAL FROM MODELO M, MARCA MA, TELEFONO T, VENTADETALLE VD, VENTA V WHERE M.IDMODELO=MA.IDMODELO AND MA.IDMARCA=T.IDMARCA AND T.IDTELEFONO=VD.IDTELEFONO AND V.IDVENTA=VD.IDVENTA GROUP BY NOMBRES. SELECT NOMBRE AS MODELO, SUM(TOTAL) AS TOTAL FROM MODELO M INNER JOIN MARCA MA INNER JOIN ON MA.IDMARCA=M.IDMARCA INNER JOIN TELEFONO T ON T.IDMODELO=M.IDMODELO INNER JOIN VENTADETALLE VD ON VD.IDTELEFONO=T.IDTELEFONO INNER JOIN VENTA V ON VD.IDVENTA = V.IDVENTA GROUP BY NOMBRE. SELECT NOMBRE AS MODELO, SUM(TOTAL) AS TOTAL FROM MODELO M INNER JOIN MARCA MA INNER JOIN ON MA.IDMARCA=M.IDMARCA INNER JOIN TELEFONO T ON T.IDMODELO=M.IDMODELO INNER JOIN VENTA V ON V.IDVENTA=T.IDVENTA INNER JOIN VENTADETALLE VD ON VD.IDTELEFONO = T.IDTELEFONO GROUP BY NOMBRES. SELECT NOMBRE AS MODELO, SUM(TOTAL) AS TOTAL FROM MODELO M INNER JOIN MARCA MA INNER JOIN ON MA.IDMARCA=M.IDMARCA INNER JOIN TELEFONO T ON T.IDMODELO=M.IDMODELO INNER JOIN VENTADETALLE VD ON VD.IDTELEFONO=T.IDTELEFONO INNER JOIN VENTA V ON VD.IDVENTA = V.IDVENTA GROUP BY M.NOMBRE.

Las tablas temporales _____ son más ________. Las variables de la tabla también se almacenan en _____. globales, accesibles, tempdb. locales, utilizadas, backup. locales, eficientes, tempdb. globales, eficientes, tempdb.

¿Cuál es la sentencia para liberar un cursor?. CATCH. CLOSE. FETCH NEXT INTO. DEALLOCATE.

¿Cuál de los siguientes enunciados es incorrecto con respecto a los procedimientos almacenados?. Es un programa ejecutado a través de una sentencia SQL. Se ejecuta en el servidor. Es obligatorio que estén escritos en SQL (Java, PL/SQL, Transact SQL). Encapsulan reglas de negocio fuertemente relacionadas con los datos de la BD y sin interacción con el usuario.

Se desea crear un procedimiento almacenado para consultar las ventas de un rango específico de fechas, se envía como parámetro la fecha de inicio y fecha de finalización. Si la fecha de finalización es nula debe tomar la fecha actual. ¿Cuál de las siguientes afirmaciones será la correcta respecto a estos 2 códigos? Procedimiento 1: CREATE PROC SP_CONSULTAR_VENTAS @FECHA_INICIO DATE, @FECHA_FIN DATE AS BEGIN SELECT @FECHA_FIN = IIF(@FECHA_FIN IS NULL, GETDATE(), @FECHA_FIN) SELECT * FROM VENTA WHERE FECHA_REGISTRO BETWEEN @FECHA_INICIO AND @FECHA_FIN END Procedimiento 2: CREATE PROCEDURE CONSULTAR_VENTAS @FECHA_INICIO DATE, @FECHA_FIN DATE AS BEGIN SET @FECHA_FIN = ISNULL(@FECHA_FIN, GETDATE())) SELECT * FROM VENTA WHERE FECHA_REGISTRO BETWEEN @FECHA_INICIO AND @FECHA_FIN END. Los 2 procedimientos no funcionan. Solo el procedimiento 2 funciona. Solo el procedimiento 1 funciona. Los 2 procedimientos funcionan.

Denunciar Test