Skip to content

Instantly share code, notes, and snippets.

@ojulianos
Created November 1, 2023 00:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ojulianos/4cc822c30d2da936535e37231b898a6f to your computer and use it in GitHub Desktop.
Save ojulianos/4cc822c30d2da936535e37231b898a6f to your computer and use it in GitHub Desktop.
1) c) Parâmetros de entrada e saída.
2) a) Nenhum parâmetro.
3) b) Somente parâmetros de entrada.
4) F
F
V
V
V
F
F
F
F
5) b) É executada de acordo com um evento; é chamada para ser executada; é chamada para ser executada e elas ficam dentro de um banco de dados.
6) a) A procedure retorna um valor inteiro após sua execução.
e) O nome da procedure é x; y e z são parâmetros.
7) a) A função retorna um valor inteiro após sua execução
c) A função possui um parâmetro
e) O nome da função é x; y é um parâmetro; e retorna um valor inteiro.
8) F
V
V
F
V
9) e) Triggers
10) b) IS_NULL , deveria ser escrito dessa forma IS NULL
f) DECLARE @placa int, pois o tipo de dado correto deveria ser alfanumérico tipo varchar.
11) e) Informar uma data (com base na data atual), acrescida ou diminuída de @m mês(es), através de @r.
12)
create function fn_count_apolices (@cod_cliente int) returns int
as
begin
declare @resultado int
select @resultado = count(cod_apolice) from apolice where cod_cliente = @cod_cliente
return @resultado
end
go
13)
declare @c table (nome varchar(50),
placa varchar(10),
modelo varchar(50),
marca varchar(50))
declare @nome varchar(50),
@modelo varchar(50),
@marca varchar(50),
@placa varchar(10) -- INT -> VARCHAR
insert into @c (placa)
select placa from carro
declare cur_carros cursor
for select placa from carro
open cur_carros
while 0=0
begin
fetch cur_carros into @placa -- @modelo -> @placa
if @@FETCH_STATUS <> 0 -- @@rowcount -> @@FETCH_STATUS
break
select @marca = marca,
@modelo = modelo
from carro
where placa = @placa
select @nome = nome
from cliente
inner join apolice on cliente.cod_cliente = apolice.cod_cliente
where apolice.placa = @placa
update @c
set nome = @nome,
marca = @marca,
modelo = @modelo
where placa = @placa
end
close cur_carros
deallocate cur_carros
select * from @c
go
14) No momento em que o usuário altera a senha é feito o registro da senha anterior em uma coluna chamada senha_anterior para possível comparação futura e evitar que o usuário use a mesma senha que já usou.
15)
CREATE PROC carros_por_cliente AS
BEGIN
SELECT cliente.nome
, (
select count(distinct placa)
from apolice
where apolice.cod_cliente=cliente.cod_cliente
) as qtde_carros
FROM cliente
END
GO
;
EXEC carros_por_cliente;
16)
CREATE FUNCTION dados.fn_qtde_carros(@cod_cli int) returns int
BEGIN
DECLARE @qtde int
select @qtde = count(distinct placa) from apolice where cod_cliente=@cod_cli
return @qtde
END
;
select nome, dbo.fn_qtde_carros(cod_cliente) as qtde_carros from cliente;
17)
CREATE TRIGGER log_apolice ON apolice for DELETE AS
BEGIN
IF (ROWCOUNT_BIG() = 0)
RETURN;
DECLARE @dt_exclusao date = getdate(),
@usuario_exclusao varchar(100) = suser_name();
insert into apolice_log_exclusao
SELECT *, @dt_exclusao, @usuario_exclusao FROM deleted;
END
GO
18)
CREATE FUNCTION fn_apolices(@cod_cli int) returns int
BEGIN
DECLARE @qtde int
select @qtde = count(*) from apolice where cod_cliente=@cod_cli
return @qtde
END
select nome, dbo.fn_apolices(cod_cliente) as qtde_apolices from cliente;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment