Baixe o app para aproveitar ainda mais
Prévia do material em texto
FUNÇÕES IN-LINE As funções in-line definidas pelo usuário retornam uma tabela e são referenciadas na cláusula FROM, da mesma maneira que uma view. Ao usar funções in-line definidas pelo usuário, considere os fatos e diretrizes a seguir: A cláusula RETURN contém uma única instrução SELECT entre parênteses. O conjunto de resultados da instrução SELECT constitui a tabela que a função retorna. A instrução SELECT usada em uma função in-line está sujeita às mesmas restrições que as instruções SELECT usadas em views. BEGIN e END não delimitam o corpo da função. RETURN especifica table como o tipo de dados retornado. Não é necessário definir o formato de uma variável de retorno porque ele é definido pelo formato do conjunto de resultados da instrução SELECT na cláusula RETURN. /*_____________________________________________________________________________ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------+------------+-------+----------------------+------+------------+¦ ¦¦¦ Fn_ProdResults ¦ Autor ¦ Williams Messa ¦ Data ¦ 06/02/2004 ¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ Analista de Negocios - DBA ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ Microsiga S/A - Arm Amazonas¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¦¦+-----------+------------+-------+----------------------+------+------------+¦ ¦¦¦ OBS.: ¦ Muito útil para uma instrução Select grande, que faz Inner ¦¦ ¦¦¦ OBS.: ¦ Join com varias tabelas,pode usar estas funcoes para ¦¦ ¦¦¦ OBS.: ¦ obter funcionalidades de Views com Parametros ¦¦ ¦¦+-----------+---------------------------------------------------------------+¦ ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯*/ --Testa se esta Função já existe no Banco para ser Criada Novamente IF EXISTS (SELECT * FROM sysobjects WHERE name = N'Fn_ProdResults') DROP FUNCTION Fn_ProdResults Go --Inicio da Criação da Função Create Function dbo.Fn_ProdResults(@IN_MVPAR01 VARCHAR(15), @IN_MVPAR02 VARCHAR(15)) --Parametros que serão informados pelo usuário Returns @Tabela Table --Define o tipo de Retorno no caso será uma Table --Inicio da Estrutura da Table (PRODUTO Varchar(15) not null, DESCRICAO Varchar(120) not null, TIPO Varchar(03) not null, UN Varchar(02) not null ) Begin --Corpo da Função(Pode se colocar IF,efetuar calculos,Etc) --Carrego a tabela de retorno Insert @Tabela(PRODUTO,DESCRICAO,TIPO,UN) -Insert Select é melhor com um Insert Into Select B1_COD,B1_DESC,B1_TIPO,B1_UM From SB1990 Where B1_COD >= @IN_MVPAR01 AND B1_COD <= @IN_MVPAR02 AND D_E_L_E_T_ = ' ' -- Clausula para Filtro do Select com parametros Recebidos Order By B1_COD -- Ordem --Retorno da function Return End -- Para Testar os parametros tem que ser passados na sequência!!! SELECT *FROM dbo.Fn_ProdResults('000000000000008','000000000001399')
Compartilhar