A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Daniel Paulo dptsalvador@hotmail.com SQL Server 2016 Módulo II Daniel Paulo dptsalvador@hotmail.com.

Apresentações semelhantes


Apresentação em tema: "Daniel Paulo dptsalvador@hotmail.com SQL Server 2016 Módulo II Daniel Paulo dptsalvador@hotmail.com."— Transcrição da apresentação:

1 Daniel Paulo dptsalvador@hotmail.com
SQL Server Módulo II Daniel Paulo

2 Funções Uma função é, basicamente, um objeto que contêm um bloco de comandos TSQL, responsável por executar um procedimento e retornar um valor ou uma série de valores, os quais podem ser retornados para uma outra função, um aplicativo, procedure ou diretamente para o usuário.

3 Funções e Stored Procedures
 Funções e Stored Procedures são semelhantes porém ao utilizarmos funções: - O retorno obtido pode ser um valor único escalar, ou dados de uma tabela Não aceita parâmetros de entrada do tipo cursos, table ou timestamp As funções não podem realizar operações que alterem dados no sistema

4 Funções Escalares As funções escalares retornam um valor único, cujo tipo é definido por uma cláusula RETURNS. Podem ser retornados os seguintes tipos: text, ntext, image, cursor e timestamp

5 Funções Determinísticas
FUNÇÕES DETERMINÍSTICAS: Resultado previsível SELECT PI() SELECT LEN('CARLOS MAGNO') SELECT SQRT(144) SELECT RAND(1) SELECT SQUARE( 12 ) FUNÇÕES NÃO DETERMINÍSTICAS: Resultado não previsível SELECT RAND() SELECT GETDATE() SELECT NEWID()

6 Funções Tabulares São aquelas que, utilizando uma cláusula SELECT, retornam um conjunto de resultados em forma de tabela Funções Tabulares in-line Não possui corpo de função e pode ser utilizada para conseguir a funcionalidade de views que possuem parâmetros.

7 Funções com várias instruções
Uma função tabular com várias instruções consiste em uma combinação de view e stored procedure.

8 Funções Nativas (built-in)
Texto: LEN, CHARINDEX, SUBSTRING, LEFT, etc Data: Getdate(), DATEFROMPARTS, DAY, etc Conversão: CAST, CONVERT, PARSE, TRY_PARSE Classificação: ROW_NUMBER, RANK, DENSE_RANK

9 Funções definidas pelo Usuário
Programação modular, já que a função, uma vez criada, pode ser armazenada no banco de dados e ser chamada quantas vezes forem necessárias Execução mais rápida, pois reduz o custo de compilação do código armazenando os planos em cache e reutilizando-os em repetidas execuções.   Assim não há a necessidade de analisar uma função cada vez que ela for utilizada Redução no tráfego de rede, já que uma função pode filtrar dados com base em uma restrição complexa

10 Funções definidas pelo Usuário
É necessário especificar o nome do Schema no qual está inserida É exigido uma permissão de Select Uma função de usuário não pode ser usada para alterar dados, nem pode definir ou criar novos objetos no banco de dados (UPDATE, INSERT  e DELETE) Uma função de usuário não podem ser realizadas transações

11 Função escalar CREATE FUNCTION INT ) RETURNS INT AS BEGIN INT; ELSE RETURN END -- Testando SELECT DBO.FN_MAIOR( 5,3 ) SELECT DBO.FN_MAIOR( 7,11 )

12 Função escalar CREATE FUNCTION DATETIME ) RETURNS VARCHAR(15) AS BEGIN VARCHAR(15) = CASE DATEPART( ) WHEN 1 THEN 'DOMINGO‘ WHEN 2 THEN 'SEGUNDA-FEIRA' WHEN 3 THEN 'TERÇA-FEIRA‘ WHEN 4 THEN 'QUARTA-FEIRA' WHEN 5 THEN 'QUINTA-FEIRA‘ WHEN 6 THEN 'SEXTA-FEIRA' WHEN 7 THEN 'SÁBADO‘ END RETURN END -- TESTANDO SELECT DBO.FN_NOME_DIA_SEMANA(GETDATE() )

13 Função Escalar CREATE FUNCTION FN_PRIM_NOME VARCHAR(200) ) RETURNS VARCHAR(200) AS BEGIN VARCHAR(200) = INT = 1; = ); <= BEGIN 1) = ' ' BREAK; 1); += 1; END END -- TESTANDO SELECT DBO.FN_PRIM_NOME( 'CARLOS MAGNO' ) SELECT DBO.FN_PRIM_NOME( ' CARLOS MAGNO' )

14 Função Tabular CREATE FUNCTION DATETIME ) RETURNS TABLE AS RETURN ( SELECT MONTH( DATA_EMISSAO ) AS MES, YEAR( DATA_EMISSAO ) AS ANO, MAX( VLR_TOTAL ) AS MAIOR_VALOR FROM PEDIDOS WHERE DATA_EMISSAO GROUP BY MONTH( DATA_EMISSAO ), YEAR( DATA_EMISSAO ) ) -- Testando SELECT * FROM DBO.FN_MAIOR_PEDIDO( ' ',' ') ORDER BY ANO, MES

15 Funções de Classificação

16 Campos computados com funções

17 Laboratório Páginas 278 à 283


Carregar ppt "Daniel Paulo dptsalvador@hotmail.com SQL Server 2016 Módulo II Daniel Paulo dptsalvador@hotmail.com."

Apresentações semelhantes


Anúncios Google