Como Chamar uma Função do SQL Server ?

Como chamar funções do SQL Server a partir de scripts Transact-SQL?

Tutorial sobre como chamar uma função do SQL Server usando scripts T-SQL, com e sem parâmetros. De facto, a sintaxe T-SQL para chamar uma função difere da chamada de uma stored procedure. Utilize a função do SQL Server da mesma forma que seleciona dados de uma tabela. Aprender a chamar uma função definida pelo utilizador do SQL Server com um script T-SQL é essencial para otimizar a manutenção do seu banco de dados e facilitar a manipulação de dados.

Neste tutorial SQL, vamos examinar como usar uma função definida pelo utilizador e como personalizar a saída da função para atender a necessidades específicas. Uma função definida pelo utilizador do SQL Server é um programa Transact-SQL que aceita parâmetros de entrada. Quando chamada, realiza ações, como ler uma tabela do SQL Server, e retorna um resultado de saída.

1. Parâmetro de entrada não é obrigatório numa função do SQL Server

Uma função não necessariamente tem um parâmetro de entrada. No entanto, uma função definida pelo utilizador do SQL Server retorna dados, que podem ser um conjunto de resultados vazio, uma única linha ou múltiplas colunas. Por exemplo, ao chamar a função integrada para exibir a data no SQL Server, o sistema retorna a data atual.

SELECT GETDATE();

2. O resultado de saída é obrigatório em funções T-SQL

De fato, uma função é definida pelo fato de retornar um resultado. Para chamar uma função, abra o SSMS e adapte o código da função se necessário. Considere este script para criar uma função chamada dbo.ufnDisplayCustomers em T-SQL:

CREATE FUNCTION dbo.ufnDisplayCustomers(@CustomerID INTEGER)
RETURNS NVARCHAR(20)
AS 
BEGIN 
  DECLARE @CustomerName  AS NVARCHAR(20);
  SELECT  @CustomerName = [Name]
  FROM    [dbo].[Customers]
  WHERE   [CustomerID] = @CustomerID;
  RETURN  @CustomerName;
END
GO

Para chamar uma função do SQL Server, utilize a seguinte sintaxe:

SELECT dbo.FunctionName(Parameters);

A função abaixo exibe o nome de um cliente associado ao número do cliente passado como parâmetro. Claro que assumimos que você tem uma tabela com pelo menos estas duas colunas, como no exemplo.

  1. CustomerID
  2. Name
/* Expert-Only.com */ 
SELECT [CustomerID]
      ,[Name]
  FROM [Expert-Only].[dbo].[Customers];


/* Expert-Only.com */ 
SELECT dbo.ufnDisplayCustomers(1);
Exemplo de query para chamar uma Função do SQL Server a partir do T-SQL
Exemplo de query para chamar uma Função do SQL Server a partir do T-SQL

3. Chamar uma função do SQL Server e renomear a coluna de saída

Com este segundo exemplo de chamada, também podemos renomear a coluna de resultado para personalizar a saída. Para fazer isso, use a sintaxe genérica abaixo:

SELECT dbo.FunctionName(Parameters) AS [NewColumnName];

Abaixo está um exemplo prático, usando dados de Clientes, então a função é usada para exibir o nome dos clientes com base no ID do cliente, então a coluna de resultado é renomeada como CustomerName, da mesma forma que colunas são renomeadas em consultas SELECT do SQL Server.

SELECT dbo.ufnDisplayCustomers(1) AS [CustomerName]; 

Neste outro tutorial, explicamos como modificar uma função do SQL Server existente. Para mais informações aprofundadas e oficiais sobre funções definidas pelo utilizador no SQL Server, leia a documentação da MS diretamente no site da Microsoft. A documentação em inglês é geralmente mais rica e completa do que em outros idiomas, incluindo o francês. O fórum oficial da Microsoft sobre bases de dados e as páginas de suporte em inglês também são muito mais ativas do que em outros idiomas.

Sobre chamar funções do SQL Server a partir de scripts T-SQL

Em conclusão, vimos como chamar uma função do SQL Server a partir de um script T-SQL, sendo uma operação necessária para otimizar e especialmente reutilizar código de forma eficiente no seu banco de dados. Este tutorial mostrou-lhe como criar, chamar e personalizar funções do SQL Server. Dominando estas técnicas, será capaz de tirar o máximo partido do seu banco de dados SQL Server e melhorar significativamente o desempenho das suas aplicações.