2010-08-23 33 views
13

agregué un campo en el servidor sql 2008 y puso el nombre de la columna entre corchetes como este [column2], pero los otros nombres de columna no tienen corchetes. ¿Qué significan los corchetes?sql server: ¿qué significan los corchetes con el nombre de la columna?

la columna es [macro-writer]

¿Debo quitar el signo menos y reemplazar con guión?

+0

la columna es [macro-escritor] –

+1

OP dijo '¿debo quitar el signo menos y reemplazarlo con guión bajo?". Lo haría, solo para que no tenga que usar '[' y ']' en todas partes. –

Respuesta

12

Las columnas entre corchetes suelen ser palabras clave o contienen caracteres o espacios especiales.

¿Qué nombre de columna específico tiene entre corchetes?

+0

[macro-escritor] [macro-escritor] –

+2

Un guión se considera un carácter especial. – Bernard

18

Los corchetes son una forma de cotización. Solo es necesario si el nombre de la columna contiene espacios o signos de puntuación o conflictos con una palabra reservada, pero muchos asistentes simplemente agregarán los corchetes para todos los nombres de campo para evitar la lógica para decidir si son necesarios.

2

Los delimitadores le permiten delimitar nombres en SQL Server. Esto le permite hacer cosas tales como usar palabras clave [conteo] o incluir espacios [mi nombre de columna].

EDIT: Para su pregunta de seguimiento, si esta es una columna nueva y no hay riesgo de romper el código existente, entonces al menos recomendaría reemplazar el guión con un guión bajo. Nuestros propios estándares de nomenclatura interna utilizan PascalCase (por ejemplo, MacroWriter) en lugar de subrayados.

4

soportes permiten utilizar caracteres y nombres que no están permitidos como espacios, palabras reservadas y los nombres que comienzan con los números

inválida mi columna, 1column col% UMN, mesa

válida [ mi columna], [1column], [col% UMN], [tabla]

por supuesto, ahora que puede llegar a ser realmente creativo :-)

create table [table]([table] varchar(20)) 

insert [table] values ('table') 

select [table] from [table] 
+0

nunca tendrá una mesa que tenga una mezcla de fuentes hebreas y tailandesas –

+0

Bueno, ¿por qué no probarlo y comprobarlo usted mismo?). Funciona en SQL 2005, 2008 crear tabla [แสดง בוקר ǣ] ( \t ID int no nulo ) – StuartLC

+0

@StuartLC También funciona sin corchetes. – mbomb007

Cuestiones relacionadas