Assinale a alternativa que apresenta a sintaxe correta para...

Próximas questões
Com base no mesmo assunto
Q825054 Banco de Dados
Assinale a alternativa que apresenta a sintaxe correta para se criar uma função no T-SQL.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Resposta correta: B - CREATE FUNCTION limpar_emp () RETURNS void AS

Para entendermos o porquê dessa alternativa ser a correta, precisamos falar um pouco sobre o T-SQL (Transact-SQL), que é a extensão do SQL usada pelo Microsoft SQL Server. Uma das funcionalidades do T-SQL é permitir a criação de funções, que são objetos de banco de dados que encapsulam uma série de comandos para realizar operações, podendo retornar um valor único ou uma tabela.

A sintaxe para criar uma função no SQL Server deve seguir o padrão:

CREATE FUNCTION nome_da_funcao (parametros)
RETURNS tipo_de_retorno
AS
BEGIN
    -- Corpo da função
END

Dissecando a alternativa correta:

  • CREATE FUNCTION é o comando correto para iniciar a declaração da criação de uma função.
  • limpar_emp seria o nome da função a ser criada.
  • () indica que não há parâmetros a serem passados para a função. Se houvesse parâmetros, estes estariam listados dentro dos parênteses.
  • RETURNS void especifica que a função não retorna um valor. Em T-SQL, ao contrário de outras linguagens de programação, não usamos 'void' para indicar ausência de retorno. Normalmente, especificaríamos o tipo de dado do retorno, como INT, VARCHAR, etc.
  • AS é utilizado para iniciar o bloco que contém o código que será executado quando a função for chamada.

É importante observar que na prática, o retorno 'void' não é utilizado no T-SQL. No entanto, como estamos analisando a sintaxe apresentada nas alternativas e buscando a estrutura correta da declaração de uma função, a alternativa B é a única que segue corretamente a sintaxe do T-SQL para declaração de uma função, apesar do uso atípico de 'void' como tipo de retorno. Em um cenário real, você substituiria 'void' pelo tipo adequado ao retorno esperado da função.

As demais alternativas contêm erros na sintaxe, como o uso de "FUNC" em vez de "FUNCTION", a ausência de parênteses após o nome da função, ou a utilização de "RETURN" em vez de "RETURNS".

Assim, mesmo que a alternativa B não represente uma prática comum (retorno 'void'), ela é a mais próxima do correto segundo os padrões de sintaxe do T-SQL para criação de funções.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Gabarito: B

Alguns exemplos de sintaxe:

CREATE [ OR ALTER ] FUNCTION [ schema_name. ] function_name  

( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type  

    [ = default ] [ READONLY ] }  

    [ ,...n ] 

  ] 

RETURNS return_data_type 

    [ WITH [ ,...n ] ] 

    [ AS ] 

    BEGIN  

        function_body  

        RETURN scalar_expression 

    END 

[ ; ] 

 

 

CREATE [ OR ALTER ] FUNCTION [ schema_name. ] function_name  

( [ { @parameter_name [ AS ] [ type_schema_name. ] parameter_data_type  

    [ = default ] [ READONLY ] }  

    [ ,...n ] 

  ] 

RETURNS TABLE 

    [ WITH [ ,...n ] ] 

    [ AS ] 

    RETURN [ ( ] select_stmt [ ) ] 

[ ; ] 

 

 

CREATE [ OR ALTER ] FUNCTION [ schema_name. ] function_name  

( [ { @parameter_name [ AS ] [ type_schema_name. ] parameter_data_type  

    [ = default ] [READONLY] }  

    [ ,...n ] 

  ] 

RETURNS @return_variable TABLE  

    [ WITH [ ,...n ] ] 

    [ AS ] 

    BEGIN  

        function_body  

        RETURN 

    END 

[ ; ]

Fiquei na dúvida!  Porque tem que colocar o void?  " RETURNS void AS "

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo