SóProvas


ID
2743360
Banca
FGV
Órgão
MPE-AL
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Usar palavras reservadas para nomear objetos não é uma boa ideia, mas no MS SQL Server é possível usar palavras reservadas em certos objetos, desde que, por ocasião da utilização esses objetos, seus nomes sejam de forma especial.

Observe os dois comandos SQL a seguir.


select "having" from teste

where between <> 'between';

select [having] from teste

where [between] <> 'between';


Sobre esses comandos, analise as afirmativas a seguir.

I. O resultado do primeiro comando é sempre vazio.

II. O primeiro comando causa um erro de compilação.

III. O resultado do segundo comando é sempre vazio.

IV. O segundo comando causa um erro de compilação.


Está correto o que se afirma em

Alternativas
Comentários
  • Os identificadores delimitados são postos entre colchetes ([ ]). A seguir, um exemplo de uma instrução DMX com identificador delimitado que obedece essas regras. SELECT * FROM [Marketing_Clusters].CONTENT; O identificador que não atender as regras para o formato dos identificadores normais deverá ser sempre delimitado. A seguir, é mostrado um exemplo de instrução DMX com identificador delimitado que contém um espaço: SELECT * FROM [Targeted Mailing].CONTENT; Use identificadores delimitados nas seguintes situações: Quando palavras reservadas forem usadas em nomes de objeto ou partes de nomes de objeto. É recomendável não usar palavras-chave reservadas como nomes de objeto. Bancos de dados que você atualizar de versões anteriores do Serviços de análise podem conter identificadores que incluem palavras que não foram reservadas na versão anterior do Serviços de análise , mas que são palavras reservadas paraSQL Server 2019 (15.x) Serviços de análise. Um identificador delimitado pode ser usado para fazer referência a um objeto assim, até que seja possível alterar o nome do objeto. Quando se usam caracteres que não estão listados como identificadores qualificados. No Serviços de análise, é possível usar qualquer caractere da página de código atual em um identificador delimitado; no entanto, o uso indiscriminado de caracteres especiais em um nome de objeto pode tornar as instruções DMX difíceis de ler e manter. referência: https://docs.microsoft.com/pt-br/sql/dmx/identifiers-dmx?view=sql-server-ver15
  • Ainda não tinha estudado sobre esse conceito. Segue o link da documentação oficial.

    Fonte: https://docs.microsoft.com/pt-br/sql/relational-databases/databases/database-identifiers?view=sql-server-ver15

  • select "having" from teste where between <> 'between';

    Esse between precisa estar entre "" ou []

    select [having] from teste where [between] <> 'between';

    Correto, o segundo 'between' é só uma string, não uma coluna

     

    "Quando identificadores são usados nas instruções Transact-SQL , os identificadores que não estiverem de acordo com essas regras deverão ser delimitados por aspas duplas ou colchetes."

    https://docs.microsoft.com/pt-br/sql/relational-databases/databases/database-identifiers?view=sql-server-ver15