Os colchetes
[]
são usados para delimitar identificadores. Isso é necessário se o nome da coluna for uma palavra-chave reservada ou contiver caracteres especiais, como espaço ou hífen. Alguns usuários também gostam de usar colchetes mesmo quando não são necessários.
Do MSDN:
Identificadores delimitados
Estão entre aspas duplas ("") ou colchetes ([ ]). Os identificadores que obedecem às regras de formato dos identificadores podem ou não ser delimitados.
SELECT * FROM [TableX] --Delimiter is optional. WHERE [KeyCol] = 124 --Delimiter is optional.
Os identificadores que não estão em conformidade com todas as regras para identificadores devem ser delimitados em uma instrução Transact-SQL.
SELECT * FROM [My Table] --Identifier contains a space and uses a reserved keyword. WHERE [order] = 10 --Identifier is a reserved keyword.