Pergunta

Eu estou criando um banco de dados e nomeado recentemente uma coluna em uma DayOfWeek mesa, esquecendo completamente que DayOfWeek é um built-in função no SQL Server. Agora eu estou decidindo se eu deveria deixá-lo como está e fazer referência a coluna com colchetes [DayOfWeek] ou alterar o nome da coluna para evitar conflitos no futuro. Eu não sou muito longe para o projeto, para mudá-lo não é muito difícil. O debate na minha cabeça é que o nome de DayOfWeek coluna apenas faz muito sentido para o seu fim, então eu realmente quiser usá-lo ... mas é uma palavra reservada ... e pode causar dor no futuro (especialmente se Eu sempre tenho que colocar colchetes em torno dele ao fazer referência a coluna).

O que todo mundo acha?

Foi útil?

Solução

Eu mudaria isso - eu tenho uma tabela legado chamado usuário - é uma dor com os colchetes o tempo todo. talvez chamá-lo DayOfWeekName ou DayOFWeekId

Josh

Outras dicas

Jeff,

Se você não está muito longe no caminho para mudar o nome da coluna (relativamente) sem dor, então eu recomendo que você alterá-lo. Você identificou um provável para o futuro-dor de cabeça para a tripulação maintentance, e eu acho que seria, na verdade, menos onerosa (com o tempo) para limpá-lo agora, especialmente considerando que renomeando algo não é o inferno sobre rodas desde o advento da busca verdadeiramente eficaz e substitua funcionalidade no texto-editores e do IDE.

A parte realmente difícil de renomear ele está ganhando o entendimento necessário para fazer o trabalho com segurança. Você é único (sendo o autor) em ter esse entendimento. Se você me perguntasse (apenas para exemplo) para fazer o trabalho, então provavelmente não seria uma proposta de negócio rentável.

Então ... +1 para fixar o otário mesmo ... e dois por não fazê-lo novamente; -)

Saúde. Keith.

Eu sempre certificar-se de que eu nunca usar uma palavra-chave como o início de qualquer / objeto / função variável, simplesmente porque você nunca tem certeza se sua língua-alvo vai gostar. Muitas vezes pode gerar erros malucos que levam um tempo para rastrear. Mesmo verificação de sintaxe não pegá-lo, isso significa que você desperdiçou mais tempo do que se tivesse sido um nome diferente, como FurryKitten.

Gostaria de evitar DayOfWeek e optar por algo que é um, talvez Weekday ou DayName completamente diferente. Ele só salva aborrecimento.

Plus - colchetes apenas criar dores de cabeça, e há um grande número de desenvolvedores de SQL lá fora, que não utilize os suportes - novos desenvolvedores vai acabar criando código "não entre colchetes" fora do hábito por algum tempo depois eles se juntam O time. convenções incomuns deve ser evitado, se possível.

alterá-lo se é fácil. Mas como uma boa prática eu usar colchetes em todos os lugares. Uma vez que você se acostumar, há mais de uma dor é do que colocar espaço entre as palavras.

Temos uma mesa aqui chamado de usuário. Se possível, gostaria de mudá-lo. Embora Josh está correto, você pode colocar colchetes para indicar que é uma tabela, essa tarefa fica velho muito rapidamente. Utilizando palavras reservadas como tabelas também torna mais difícil para outros desenvolvedores. Se alguém não sabe que é uma palavra reservada, pode ser difícil determinar por que uma consulta não funciona.

Se você usar qualquer biblioteca / adaptador de abstração DB para obter dados do banco de dados, então não se preocupe. Classe vai escapar nomes de coluna para você. Se você escrever consultas SQL mesmo, então ele pode fazer alguns problemas. Você precisa escapar nomes de colunas em suas consultas.

P.S. Remmember I, algumas vezes eu estava em situação como você. Mas fui nomeado coluna como "ordem": -)

Gostaria de evitar também usando palavras reservadas, você pode ficar muito easly em apuros, se você não está prestando atenção.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top