2010-08-23 12 views
13

J'ai ajouté un champ dans sql server 2008 et il a mis le nom de la colonne entre parenthèses comme ceci [column2], mais les autres noms de colonnes n'ont pas de parenthèses. que signifient les parenthèses?sql server: que signifient les parenthèses autour du nom de la colonne?

la colonne est [macro-writer]

devrait-je supprimer le signe moins et le remplacer par underscore?

+0

la colonne est [macro-écrivain] –

+1

OP a dit 'devrais-je supprimer le signe moins et le remplacer par un soulignement'. Je voudrais, si seulement je n'ai pas besoin d'utiliser '[' et ']' partout! –

Répondre

12

Les colonnes entre crochets sont généralement des mots-clés ou contiennent des caractères spéciaux ou des espaces.

Quel nom de colonne spécifique avez-vous entre crochets?

+0

[macro-writer] [macro-writer] –

+2

Un tiret est considéré comme un caractère spécial. – Bernard

18

Les crochets sont une forme de citation. C'est seulement nécessaire si le nom de la colonne contient des espaces ou de la ponctuation ou des conflits avec un mot réservé, mais de nombreux assistants ajouteront simplement les parenthèses pour tous les noms de champs pour éviter la logique pour décider s'ils sont nécessaires. Les parenthèses vous permettent de délimiter des noms dans SQL Server.

2

Cela vous permet de faire des choses telles que l'utilisation de mots-clés [count] ou d'inclure des espaces [mon nom de colonne]. Pour votre question de suivi, s'il s'agit d'une nouvelle colonne et qu'il n'y a aucun risque de casser le code existant, alors je recommanderais au moins de remplacer le tiret par un trait de soulignement. Nos propres normes de dénomination interne doivent utiliser PascalCase (par exemple, MacroWriter) plutôt que des traits de soulignement.

4

supports vous permettent d'utiliser des caractères et des noms qui ne sont pas autorisés comme des espaces, des mots et des noms réservés en commençant par les numéros

invalide ma colonne, 1column col% UMN, tableau

valide [ ma colonne], [1column], [col% UMN], [tableau]

bien sûr, vous pouvez maintenant devenir :-) vraiment créatif

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

insert [table] values ('table') 

select [table] from [table] 
+0

vous aurez jamais une table qui a un mélange de caractères hébreu et thai –

+0

Eh bien, pourquoi ne pas essayer et voir par vous-même;). Fonctionne sur SQL 2005, 2008 créer table [แสดง בוקר ǣ] ( \t ID int non null ) – StuartLC

+0

@StuartLC Il fonctionne également sans crochets. – mbomb007

Questions connexes