Me di cuenta de que Visual Studio 2008 está colocando corchetes alrededor de los nombres de columna en sql. ¿Los soportes ofrecen alguna ventaja? Cuando entrego el código T-SQL, nunca me he molestado con ellos.
Ejemplo:
Estudio visual:
SELECT [column1], [column2] etc...
Mi propia manera:
SELECT column1, column2 etc...
sql-server
syntax
Paulj
fuente
fuente
"
), que Microsoft también admite. Si Microsoft sintiera la necesidad de delimitar todo, habría sido mejor utilizar las comillas dobles estándar. Pero supongo que habría hecho demasiado fácil a puerto a otro DBMS, y eso nunca lo haré ...Respuestas:
Los corchetes son obligatorios si usa palabras clave o caracteres especiales en los nombres o identificadores de columna. Podrías nombrar una columna
[First Name]
(con un espacio), pero luego necesitaría usar corchetes cada vez que se refiriera a esa columna.Las herramientas más nuevas las agregan a todas partes, por si acaso o para mayor consistencia.
fuente
select
peroselect select from mytable
arrojaría un error, porselect [select] from mytable
lo que sería una consulta válida. Cualquier palabra que se vuelva colorida en su estudio de administración de SQL, debe estar entre corchetes si desea usarlos como nombres de columna / tabla / sp / etc. En MySQL, las comillas simples en ángulo `` `` serían el equivalente de esto.Son útiles si sus columnas tienen los mismos nombres que las palabras clave SQL o tienen espacios en ellas.
Ejemplo:
¡Oh no! Sintaxis incorrecta cerca de la palabra clave 'usuario'. Pero esto:
Funciona bien.
fuente
Son útiles si, por alguna razón, está utilizando nombres de columna con ciertos caracteres, por ejemplo.
no funcionaría, pero poner corchetes alrededor del nombre de la columna funcionaría
En resumen, es una forma de declarar explícitamente un nombre de objeto; columna, tabla, base de datos, usuario o servidor.
fuente
Los nombres de columna pueden contener caracteres y palabras reservadas que confundirán al motor de ejecución de consultas, por lo que colocar corchetes alrededor de ellos en todo momento evita que esto suceda. Supongo que es más fácil que buscar un problema y luego tratarlo.
fuente
Los corchetes se pueden usar cuando los nombres de columna son palabras reservadas.
Si está generando programáticamente la instrucción SQL a partir de una colección de nombres de columna que no controla, puede evitar problemas utilizando siempre los corchetes.
fuente
Independientemente de seguir una convención de nomenclatura que evite el uso de palabras reservadas, Microsoft agrega nuevas palabras reservadas. El uso de paréntesis permite que su código se actualice a una nueva versión de SQL Server, sin necesidad de editar las palabras recientemente reservadas de Microsoft de su código de cliente. Esa edición puede ser una preocupación importante. Puede causar que su proyecto sea retirado prematuramente ...
Los corchetes también pueden ser útiles cuando desea reemplazar todo en un script. Si su lote contiene una variable llamada @String y una columna llamada [String], puede cambiar el nombre de la columna a [NewString], sin renombrar @String a @NewString.
fuente
Durante la era oscura de SQL en la década de 1990, fue 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 el borrador SQL3.
Por lo tanto, mantiene la compatibilidad hacia adelante.
Y descubrí que tiene otro efecto secundario agradable, ayuda mucho cuando usas grep en revisiones de código y refactorización.
fuente
Además, algunas bases de datos de Sharepoint contienen guiones en sus nombres. El uso de corchetes en sentencias SQL permite que los nombres se analicen correctamente.
fuente
Creo que los agrega allí por coherencia ... solo son necesarios cuando tiene un espacio o un carácter especial en el nombre de la columna, pero es más claro incluirlos todo el tiempo cuando el IDE genera SQL.
fuente