O comando a seguir é um trecho de um exemplo de como inserir...
O comando a seguir é um trecho de um exemplo de como inserir dados numa tabela do MS SQL Server.
Insert produto
(produtoid, nome, preço, data)
values
As opções a seguir completam sintaticamente o trecho acima,
à exceção de uma. Assinale-a.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a D.
Para entender a questão e chegar à resposta correta, é preciso conhecer o comando INSERT do SQL Server, que é utilizado para inserir dados em uma tabela. Este comando deve ser seguido pela especificação dos nomes das colunas em que se deseja inserir os dados, e em seguida pelos valores correspondentes a essas colunas, dentro de parênteses e separados por vírgulas, na cláusula VALUES.
Observamos que as alternativas A, B, C e E fornecem uma lista de valores que são sintaticamente corretos e compatíveis com o que foi especificado anteriormente para as colunas produtoid, nome, preço e data. Nessas alternativas, todas as posições dos valores estão preenchidas corretamente, seja com um valor específico, seja com a função getdate()
que retorna a data e hora atuais, seja com a palavra-chave null
que indica ausência de valor.
A alternativa D está incorreta porque há uma vírgula seguida por um espaço vazio onde deveria haver um valor para a coluna nome. O SQL Server espera um valor, uma função ou a palavra-chave default
(caso a coluna tenha um valor padrão definido) ou null
para cada coluna especificada no INSERT. A ausência de um valor (representada apenas por uma vírgula seguida por um espaço) é sintaticamente incorreta e resultaria em um erro ao tentar executar a instrução.
Para que a alternativa D fosse correta, deveria haver um valor adequado para a coluna nome ou a palavra-chave null
se a intenção fosse inserir um valor nulo. Por exemplo, se fosse escrito (1, null, null, default)
, estaria sintaticamente correto, assumindo que a coluna data tivesse um valor padrão definido.
Portanto, a alternativa D é a que não completa sintaticamente o trecho do comando INSERT de forma adequada.
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
Na verdade, a única errada é a letra D) porque a sintaxe está incorreta. Não existe colocar ,, sinalizando um valor "null".
Em uma inserção, podemos atribuir diversos valores aos atributos, respeitando seus domínios.
Como não temos informação de tipo ou de tamanho dos dados, podemos atribuir basicamente qualquer valor suportado pela linguagem SQL que a assertiva estará correta.
Esses valores incluem:
- Valor da data de hoje retornado pela função getdate()
- Valor NULL
- Cadeia de caracteres em branco (‘ ‘)
No SQL Server, ainda, pode-se explicitamente informar que o valor default, ou padrão, deve ser inserido na coluna.
O único valor dentre os apresentados que não pode, em hipótese alguma, ser atribuído a um atributo de banco de dados é o valor vazio.
Veja que na alternativa D não há absolutamente nada na segunda posição da lista.
Isso não é permitido, pois toda tupla tem um valor para cada um de seus atributos, mesmo que esse valor seja um nulo ou string em branco.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo