Existe uma maneira de especificar, por exemplo, 4 valores distintos para uma coluna varchar no MS SQL Server 2008?
Por exemplo, preciso de uma coluna chamada Frequência (varchar) que aceita apenas 'Diário', 'Semanal', 'Mensal', 'Anual' como valores possíveis
É possível definir no SQL Server Management Studio ao criar a tabela?
sql
sql-server-2008
ssms
Adão
fonte
fonte
Respostas:
Você já olhou como adicionar um
check constraint
nessa coluna que restringiria os valores? Algo como:fonte
Frequency varchar(200)
Você quer uma restrição de verificação .
Você quer algo como:
Você também pode implementar restrições de verificação com funções escalares, conforme descrito no link acima, que é como eu prefiro fazer isso.
fonte
Pessoalmente, eu o codificaria como tinyint e:
Razões:
Levará em média 8 bytes para armazenar texto, 1 byte para tinyint. Em milhões de linhas, isso fará a diferença.
E quanto ao agrupamento? "Diário" é o mesmo que "DIÁRIO"? É preciso recursos para fazer esse tipo de comparação.
Por fim, e se você quiser adicionar "Quinzenal" ou "Por hora"? Isso requer uma mudança de esquema quando você poderia simplesmente adicionar novas linhas a uma tabela de pesquisa.
fonte
Quando você estiver editando uma tabela,
clique com o botão direito -> Verificar restrições -> Adicionar -> Digite algo como
Frequency IN ('Daily', 'Weekly', 'Monthly', 'Yearly')
no campo de expressão e um bom nome de restrição no campo (Nome).Você terminou.
fonte