Questão nº 77

Questão de Suporte · FGV DPGE-RJ 2014 (nº 77)

FGV2014Técnico Superior Especializado em SuporteSuporte
Gabarito: Bver comentário ↓

Observe o cabeçalho de um script de criação de uma stored procedure no MS SQL Server.

```sql
create procedure XPTO
@P1 varchar(10),
@P2 int=0,
@P3 varchar(50)=''

AS …
```
Sabendo-se que somente aspas simples foram digitadas, o comando de execução da referida procedure que está incorreto é

Resposta comentada

Gabarito Alternativa B

Ao executar uma stored procedure no SQL Server, você pode passar parâmetros por posição (na ordem em que foram declarados) ou por nome (especificando @NomeDoParametro = Valor). Parâmetros que possuem um valor padrão na declaração são opcionais e podem ser omitidos na execução, caso contrário, são obrigatórios.

  • (A) Incorreta: Este comando está correto. Os parâmetros são passados por posição: 'ABC' para @P1 (varchar), 10 para @P2 (int) e '' para @P3 (varchar). Todos os tipos são compatíveis.
  • (B) Correta: Este comando está incorreto. Ao passar parâmetros por posição, não se pode simplesmente omitir um parâmetro obrigatório (como @P1) usando apenas uma vírgula. O parâmetro @P1 não tem valor padrão e, portanto, é obrigatório. A sintaxe exec xpto ,'10', '' implica que o primeiro parâmetro está ausente, o que é um erro para um parâmetro obrigatório sem valor padrão.
  • (C) Incorreta: Este comando está correto. Os parâmetros são passados por posição: 'ABC' para @P1 (varchar), '10' para @P2 (int) e '' para @P3 (varchar). O SQL Server realiza uma conversão implícita de '10' (string) para 10 (inteiro) para o parâmetro @P2, o que é permitido e bem-sucedido. A armadilha da banca aqui é fazer você pensar que passar uma string para um parâmetro inteiro é sempre um erro, mas o SQL Server é flexível com conversões implícitas válidas.
  • (D) Incorreta: Este comando está correto. Apenas o parâmetro @P1 é fornecido (''). Os parâmetros @P2 e @P3 são opcionais e assumem seus valores padrão (0 e '', respectivamente).
  • (E) Incorreta: Este comando está correto. O parâmetro @P1 é passado por nome (@P1='ABC'). Os parâmetros @P2 e @P3 são opcionais e assumem seus valores padrão (0 e '', respectivamente).

Fonte: FGV DPGE-RJ 2014 Técnico Superior Especializado em Suporte (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho