UDFs e Funções Tabulares - Trabalhando com funções tabulares definidas pelo usuário
UDFs tabulares são funções criadas pelo usuário que retornam uma tabela como resultado. Nesse artigo, vamos apresentar mais detalhes sobre como usá-las.
Clique aqui para ler esse artigo em PDF
SQL
UDFs e Funções Tabulares
Trabalhando com funções tabulares definidas pelo usuário
Recentemente apresentei um estudo sobre as funções escalares definidas pelo usuário. Funções escalares são aquelas que retornam um único valor como resultado. Vimos sua sintaxe, como usá-las e quais as vantagens que oferecem.
Porém, o padrão ANSI SQL prevê ainda outro tipo de função definida pelo usuário (UDF), que são as funções de tabela. UDFs tabulares são funções criadas pelo usuário que retornam uma tabela como resultado. Tais tabelas podem conter um ou mais campos, assim como um ou mais registros.
Como fazem parte do padrão ANSI SQL, elas existem na maioria dos sistemas gerenciadores de bancos de dados (SGBDs) disponíveis no mercado.
A seguir, vamos apresentar mais detalhes sobre como usá-las.
O que é UDF tabular
Uma função tabular recebe parâmetros e retorna uma tabela como resultado. No nosso caso, UDF tabular é uma função deste tipo que é definida pelo próprio usuário.
UDFs tabulares têm alguma semelhança com as visões (views), já que ambas retornam uma tabela virtual como resultado. De uma maneira simplista, podemos pensar que tanto elas como as visões trazem o resultado correspondente a uma declaração SELECT que faz parte do seu código. Mas as UDFs tabulares vão muito além disso:
1.Aceitam o uso de parâmetros que definirão o resultado retornado;
2.A sua lógica pode incluir laços (loops), testes de condição e até mesmo chamadas a outras funções.
Estas diferenças as tornam completamente distintas das visões. Mas aí surge outra dúvida. Os procedimentos armazenados (ou stored procedures) também aceitam parâmetros e também suportam os recursos de programação disponíveis na linguagem SQL.
Então, quando devemos usar a UDF tabular e quando usar o procedimento armazenado? Este é o tema para o próximo tópico.
Quando usar UDFs tabulares
As funções tabulares não são um recurso popular no universo dos bancos de dados. Nem mesmo a idéia de função tabular é algo intuitivo.
Existe muita confusão sobre quando usar uma UDF de tabela ao invés de um procedimento armazenado. A pergunta que sempre aparece é: quando devo usar um ao invés do outro?
A resposta depende do que você pretende fazer com a tabela resultante. Este assunto é tão discutido que mereceu um tópico específico na documentação de ajuda do SQL Server (veja lista de Links no final deste artigo).
UDFs oferecem duas vantagens marcantes sobre procedimentos armazenados, a saber:
1.UDF tabular pode ser invocada dentro de uma declaração SQL; procedimentos armazenados não funcionam neste caso;
2.UDF tabular pode ser invocada dentro de outra função, seja ela escalar ou tabular; novamente, os procedimentos armazenados não funcionam aqui.
Você pode considerar estes itens para apoiar sua decisão em utilizar ou não este recurso.
" [...] continue lendo...Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo