SQL Server 2008 - Edição de Tabelas: Colunas Bit exigem 'True' ou 'False'
-
19-08-2019 - |
Pergunta
Não é tanto uma questão como uma observação ...
Eu só estou atualizando para o SQL Server 2008 em minha máquina de desenvolvimento em antecipação de atualizar minhas aplicações ao vivo. Eu não antecipar eventuais problemas desde [Eu acho] Eu geralmente uso padrão T-SQL e, provavelmente, não muito longe do padrão ANSI SQL. Até aí tudo bem, mas eu estava realmente jogado por uma mudança muito simples:
Eu estava criando um simples, pequeno tabela look-up para armazenar uma lista de códigos e incluindo uma coluna de bits para indicar o código padrão atual. Mas quando eu usei a opção nova / modificada 'Editar 200 Linhas Superiores', e entrou meus 0s e 1s na coluna a pouco eu tenho um erro:
'Valor inválido para celular - corda foi não reconhecido como um booleano válido '
Depois de um pouco de cabeça coçar, eu tentei Verdadeiro e Falso - e eles trabalharam.
Assim, parece que este novo recurso Editar requer 4 ou 5 caracteres a serem digitados, ao invés do anterior 1.
Verificar mais, ainda podemos usar '...where bitval = 1
' mas agora também pode usar '...where bitval = 'true'
'. Mas qualquer resultado retornado tornar estas colunas bit como 0 ou 1 ainda.
tudo isso soa como meio passo para trás. Não é o fim do mundo, mas e aborrecimento desnecessário.
Alguém tem qualquer visão sobre esta questão? Ou existem outros novos Gotchas com o SQL Server 2008?
2012 Update: Tendo acabado de instalar SQL Server 2012, noto que este comportamento foi 'corrigido' - Assim como eu poderia antes, agora eu posso entrar 1/0 ao invés de verdadeiro / falso diretamente em linhas, utilizando a opção 'Editar 200 Linhas Superiores'. É uma coisa pequena, mas estou feliz.
Solução
Só que eles estragaram tudo e apenas metade reforçou a Try regra usando ... = True em uma instrução de atualização e ver o que acontece. Quer percorrer todo o caminho ou não em todos. Desculpe Microsoft, não pode dar-lhe quaisquer marcas em que um
Outras dicas
Você sempre foi capaz de usar 'True' e 'False' para comparar com colunas BIT ... Eu acho que esta alteração "força" é uma boa para ficar claro que o campo é um pouco, e não um INT.
Pessoalmente, eu gostaria que o C # não suporta "se (0) ..." Eu acho que é apenas uma preferência para maior clareza.
Só encontrei este (depois de preparar soemthing outra coisa) Construído em pelo projeto