Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Examen y Ejercicios Primeros
Examen y Ejercicios Primeros
[sp_ej1IF]
AS
BEGIN
DECLARE @Npisos int
SELECT @Npisos=count(*)
FROM tbltienepisoen
WHERE codciudad = 37
IF @Npisos < 5
SELECT @Npisos, 'hay menos de 5'
ELSE
SELECT @Npisos, 'mas de 5'
END
----------------------------------------------------------------------
ALTER PROCEDURE [dbo].[eje2casa]
AS
DECLARE @Contador int
SET @Contador=0
BEGIN
WHILE(@Contador<=10)
BEGIN
SELECT 'estamos en '+ cast (@contador as char(2))
SET @Contador=@Contador+1
END
END
AS
BEGIN
DECLARE @n int
SET @n=30
WHILE (@n<=255)
BEGIN
SELECT cast(@n as char(3)) +'='+ char(@n)
SET @n=@n+1
END
END
SET @n=1
WHILE @n<=255
BEGIN
INSERT INTO tblASCII VALUES
(@n,char(@n))
SET @n=@n+1
END
END
ELSE
SELECT('existe')
END
AS
BEGIN
DECLARE @posicion int,
@cadena char(10),
@c char(1)
SET NOCOUNT ON
SET @cadena='salamanca'
SET @posicion=1
WHILE(@posicion<=datalength(@cadena))
BEGIN
SET @c=substring(@cadena,@posicion,1)
SELECT @c, ASCII(@c)
SET @posicion=@posicion+1
END
END
@dni int,
@codciudad int,
@valor int
AS
BEGIN
DECLARE @nerror int;
INSERT INTO tbltienepisoen VALUES (@dni,@codciudad,@valor)
SET @nerror=@@error
IF @nerror<>0
SELECT @nerror as 'Error detectado'
ELSE
SELECT @@identity as Ultimograbado
END
ALTER PROCEDURE [dbo].[sp_4]
@CODCIUDAD INT,
@VALOR INT
AS
BEGIN
declare @N INT
END
END
CREATE TRIGGER tr_TituloLibros
ON tblLibros
AFTER UPDATE
AS
BEGIN
IF update(Titulo)
BEGIN
rollback tran
raiserror('No se puede modificar el titulo de los
libros',16,1)
END
IF update(Descatalogado)
BEGIN
select * from deleted
IF (@@rowcount>1)
BEGIN
rollback tran
raiserror('Los cambios en el campo
descatalogado deben ser de 1 en 1',16,1)
END
END
END
--------------------------------------------------------------------
ALTER TRIGGER [dbo].[tr__controlAutores]
ON [dbo].[tblAutores]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
IF EXISTS(select * from deleted) AND EXISTS(select * from
inserted) --si son las dos (update)
BEGIN
INSERT INTO tblHistoricoAutores
(accion,fecha,nombre,apellidos) select 'actualizado (registro
anterior)',getdate(),nombre,apellidos FROM DELETED;
INSERT INTO tblHistoricoAutores
(accion,fecha,nombre,apellidos) select 'actualizado (registro
nuevo)',getdate(),nombre,apellidos FROM INSERTED;
END
ELSE
BEGIN
IF EXISTS(select * from deleted)--si es tabla delete
BEGIN
INSERT INTO tblHistoricoAutores
(accion,fecha,nombre,apellidos) select
'Borrado',getdate(),nombre,apellidos FROM DELETED
END
ELSE
BEGIN
IF EXISTS(select * from inserted)--si es
tabla insert
BEGIN
INSERT INTO
tblHistoricoAutores (accion,fecha,nombre,apellidos) select 'Nuevo
registro',getdate(),nombre,apellidos FROM INSERTED
END
END
END
END
END
)
RETURNS TABLE
AS
RETURN
(
select * from tblautores where
month(fechanacimiento)=month(getdate())
)
AS
DECLARE @descatalogado bit,
@saldo int
BEGIN
INSERT INTO tblControlPedidos values(@ISBN,@cantidad,getdate())
BEGIN TRAN
BEGIN TRY
IF NOT EXISTS(select * from tblLibros where ISBN=@ISBN)
BEGIN
raiserror('El libro no existe',16,1)
END
SELECT @descatalogado=Descatalogado FROM tblLibros WHERE
ISBN=@ISBN
IF(@descatalogado='true')
BEGIN
raiserror('El libro ya esta
descatalogado',16,1)
END
SELECT @saldo=Stock FROM tblLibros WHERE ISBN=@ISBN
IF(@saldo<@cantidad)
BEGIN
raiserror('No hay stock suficiente',16,1)
END
ELSE
UPDATE tblLibros SET Stock=Stock-@cantidad WHERE
ISBN=@ISBN
IF(@@error<>0)
BEGIN
raiserror('Error al actualizar',16,1)
END
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
INSERT INTO tblPedidosErroneos
values(Error_Message(),getdate(),@ISBN)
END CATCH
END