¿Cuál es el uso de los corchetes en las sentencias sql?

Me di cuenta de que Visual Studio 2008 está colocando corchetes alrededor de los nombres de las columnas en sql. ¿Los corchetes ofrecen alguna ventaja? Cuando le doy el código T-SQL, nunca me he molestado con ellos.

Ejemplo: Visual Studio: SELECCIONE [columna1], [columna2] etc …

A mi manera: SELECCIONE column1, column2, etc …

Los corchetes son obligatorios si usa palabras clave o caracteres especiales en los nombres o identificadores de las columnas. Podrías nombrar una columna [First Name] (con un espacio) – pero necesitarías usar corchetes cada vez que te refieras a esa columna.

Las herramientas más nuevas las agregan a todos lados por si acaso o por consistencia.

Son útiles si sus columnas tienen los mismos nombres que las palabras clave SQL, o tienen espacios en ellas.

Ejemplo:

 create table test ( id int, user varchar(20) ) 

¡Oh no! Sintaxis incorrecta cerca de la palabra clave ‘usuario’. Pero esto:

 create table test ( id int, [user] varchar(20) ) 

Funciona bien.

Son útiles si estás (por alguna razón) usando nombres de columna con ciertos caracteres, por ejemplo.

 Select First Name From People 

no funcionaría, pero poner corchetes alrededor del nombre de la columna funcionaría

 Select [First Name] From People 

En resumen, es una manera de declarar explícitamente un nombre de objeto; columna, tabla, base de datos, usuario o servidor.

Los nombres de columna pueden contener caracteres y palabras reservadas que confunden el motor de ejecución de consultas, por lo que colocar corchetes a su alrededor en todo momento evita que esto suceda. Es más fácil que buscar un problema y luego lidiar con él, supongo.

Los corchetes se pueden usar cuando los nombres de las columnas son palabras reservadas.

Si está generando programáticamente la instrucción SQL de una colección de nombres de columnas que no controla, entonces puede evitar problemas utilizando siempre los corchetes.

Además, algunas bases de datos Sharepoint contienen guiones en sus nombres. Utilizar corchetes en las declaraciones SQL permite que los nombres se analicen correctamente.

Creo que los agrega allí por coherencia … solo son necesarios cuando tienes un espacio o un carácter especial en el nombre de la columna, pero es más sencillo incluirlos todo el tiempo cuando el IDE genera SQL.

Independientemente de seguir una convención de nomenclatura que evite el uso de palabras reservadas, Microsoft agrega nuevas palabras reservadas. El uso de corchetes permite que su código se actualice a una nueva versión de SQL Server, sin necesidad de editar primero las palabras reservadas de Microsoft de su código de cliente. Esa edición puede ser una gran preocupación. Puede causar que su proyecto sea retirado prematuramente …

Los corchetes también pueden ser útiles cuando desee Reemplazar todo en una secuencia de comandos. Si su lote contiene una variable llamada @String y una columna llamada [String], puede cambiar el nombre de la columna a [NewString], sin cambiar el nombre de @String a @NewString.

Durante las épocas oscuras de SQL en la década de 1990, era una buena práctica, ya que los diseñadores de SQL intentaban agregar cada palabra en el diccionario como palabra clave para una avalancha interminable de nuevas características y lo llamaron borrador de SQL3.

Por lo tanto, mantiene la compatibilidad hacia adelante.

Y descubrí que tiene otro buen efecto secundario, ayuda mucho cuando usa grep en revisiones de código y refactorización.