Escolar Documentos
Profissional Documentos
Cultura Documentos
Vejamos um exemplo
Na seguinte função se obtem a media do salário de todos empregados
Vejamos um exemplo
Na seguinte função se obtem a venda feita num determinado mês
CREATE FUNCTION vendaPorMes
(
@mes int
)
RETURNS TABLE
AS
RETURN
(
SELECT * FROM venda WHERE MONTH(venda.datavenda) = @mes
)
Execuão:
SELECT * FROM [dbo].[vendaPorMes] (11)
Funções definidas pelo utilizador
❖Função de valor Tabela (Múltipla declaração)
Nesta função declara-se uma variável do tipo TABLE com várias
colunas definidas. Os valores de retorno deverão ser introduzidas nesta tabela
CREATE FUNCTION resultado
(
)
RETURNS
@resultado TABLE
(
nrresultado int ,
valor int
)
AS
BEGIN
insert into @resultado(nrresultado,valor) values(1,1)
RETURN
END
Execuão:
SELECT * FROM resultado()
Restrições de Integridade Complexas (SQL-92)
❖Restricao sobre uma única tabela
Exemplo1:
Nota: Para SQL Server (versao 2008 ou menor) cria-se um tipo de dado definido pelo
utilizador ao contrario de dominio
Desencadenadores ou Triggers
Por exemplo
• Para manter as regras de integridade
• Para produzir a actualização e a eliminação em cascada.
• Para invocar determinada acção quando se produzem
modificações de dados ou notificar algo, etc.
Vejamos alguns exemplos
Exemplo1
Verificar que o número do departamento exista quando inserimos ou
actualizamos um empregado
Se utiliza FOR para indicar que se faz uma inserção ou actualização.
AS
IF EXISTS (SELECT * FROM inserted
WHERE inserted.idDpto NOT IN ( SELECT idDpto FROM Departamento))
BEGIN
PRINT 'Nao existe o codigo do departamento'
ROLLBACK TRANSACTION
END
Vejamos alguns exemplos
Exemplo 2
Para eliminar um empregado e passar seus dados a uma tabela