query microsoft from for consultas sql ms-access

microsoft - [] corchetes en sentencias sql



sql access (8)

¿Qué hacen los corchetes en una declaración sql?

Por ejemplo, en la declaración:

insert into table1 ([columnname1], columnname2) values (val1, val2)

Además, ¿qué hace si el nombre de la tabla está entre paréntesis?


Cualquier cosa dentro de los paréntesis se considera un único identificador (por ejemplo, [máquina de prueba]. Esto se puede utilizar para encerrar nombres con espacios o para evitar palabras de reserva (por ejemplo [orden], [seleccionar], [grupo]).



El [] marca la delimitación de un identificador, por lo que si tiene una columna cuyo nombre contiene espacios como Cantidad del pedido, debe adjuntarlo con [] como:

select [Order qty] from [Client sales]

También deben escapar palabras clave reservadas utilizadas como identificadores


Están destinados a escapar palabras clave reservadas o identificadores de columna no válidos.

CREATE TABLE test ( [select] varchar(15) ) INSERT INTO test VALUES(''abc'') SELECT [select] FROM test


Esta es la sintaxis no estándar de Microsoft SQL Server para "identificadores delimitados". SQL admite delimitadores para identificadores que permiten que los nombres de tablas, columnas u otros objetos de metadatos contengan lo siguiente:

  • Palabras reservadas de SQL: "Orden"
  • Palabras que contienen espacios: "Order qty"
  • Palabras que contienen signos de puntuación: "Order-qty"
  • Palabras que contienen caracteres internacionales
  • Nombres de columna que distinguen entre mayúsculas y minúsculas: "Orden" vs. "orden"

Microsoft SQL Server usa los corchetes, pero esta no es la sintaxis que el estándar SQL usa para los identificadores delimitados. De manera estándar, las comillas dobles deben usarse para delimitadores.

En Microsoft SQL Server, puede habilitar un modo para usar comillas dobles estándar para delimitadores de la siguiente manera:

SET QUOTED_IDENTIFIER ON;


Le permiten usar palabras clave (como la fecha ) en el nombre de la columna, tabla, etc.

Como esta es una mala práctica para empezar, generalmente no están incluidas. El único lugar donde debería ver que se usan es personas que comienzan con consultas SQL que no conocen mejor. Aparte de eso, solo complican su consulta.


Son simplemente delimitadores que le permiten poner caracteres especiales (como espacios) en el nombre de la columna o tabla, por ejemplo

insert into [Table One] ([Column Name 1], columnname2) values (val1, val2)


si usa cualquier nombre de columna que sea igual que cualquier palabra clave reservada en sql, en ese caso puede poner el nombre de la columna entre corchetes para distinguir entre el nombre de columna personalizado y la palabra clave reservada existente.