Questão nº 71
Questão de Tecnologia da Informação · FGV TRF1 2024 (nº 71)
No contexto de stored procedures no SQL Server, considere o script a seguir.
CREATE PROCEDURE TESTE @X int =2
AS
SELECT * FROM fibo WHERE N = @X
Levando em conta essa definição, analise a lista de cinco sugestões de comandos que poderiam acionar a execução da procedure TESTE.
1. EXEC TESTE @X = 1
2. TESTE
3. EXEC TESTE 2
4. TESTE 1
5. CALL TESTE 2
Sobre esses comandos, é correto concluir que são válidos:
- Atodos os cinco;
- Bsomente 1, 2, 3 e 4; (alternativa correta)
- Csomente 2, 4 e 5;
- Dsomente 2, 3 e 5;
- Esomente 1, 3 e 4.
Resposta comentada
Gabarito Alternativa B
Para executar uma stored procedure (um conjunto de comandos SQL pré-compilados e armazenados no banco de dados) no SQL Server, você pode usar a palavra-chave `EXEC` ou, em muitos casos, omiti-la, passando os parâmetros por nome ou por posição.
(A) Incorreta: A alternativa 5 (`CALL TESTE 2`) não é uma sintaxe válida para execução de stored procedures T-SQL no SQL Server.
(B) Correta: As alternativas 1, 2, 3 e 4 representam sintaxes válidas para executar uma stored procedure no SQL Server. `EXEC TESTE @X = 1` e `EXEC TESTE 2` são as formas explícitas com `EXEC`, passando o parâmetro por nome e por posição, respectivamente. `TESTE` (sem parâmetros, usando o valor padrão de `@X=2`) e `TESTE 1` (passando o parâmetro `1` por posição para `@X`) são formas abreviadas válidas que omitem a palavra-chave `EXEC`.
(C) Incorreta: A alternativa 5 (`CALL TESTE 2`) não é uma sintaxe válida no SQL Server para a execução direta de stored procedures T-SQL. A palavra-chave `CALL` é comum em outros SGBDs, mas não no SQL Server para este fim. Essa é a armadilha da banca.
(D) Incorreta: A alternativa 5 (`CALL TESTE 2`) não é uma sintaxe válida no SQL Server.
(E) Incorreta: A alternativa 2 (`TESTE`) é uma sintaxe válida para executar a procedure usando seu valor padrão, e não está incluída nesta opção.
Fonte: FGV TRF1 2024 Analista Judiciário - Análise de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.