Question

Ce n’est pas tant une question qu’une observation ...

Je suis en train de mettre à niveau vers SQL Server 2008 sur ma machine de développement en prévision de la mise à niveau de mes applications en direct. Je n’avais prévu aucun problème puisque [je pense] que j’utilise généralement le standard T-SQL, et probablement pas très loin du standard SQL ANSI. Jusqu'ici tout va bien, mais un changement très simple m'a vraiment bouleversé:

Je créais une petite table de consultation simple pour stocker une liste de codes et comprenant une colonne de bits pour indiquer le code par défaut actuel. Mais lorsque j'ai utilisé la nouvelle option modifiée "Editer les 200 premières lignes" et que j'ai entré mes 0 et mes 1 dans la colonne des bits, j'ai reçu une erreur:

  

'Valeur non valide pour la cellule - La chaîne était   non reconnu comme un booléen valide '

Après un peu de casse-tête, j'ai essayé True et False - et ils ont fonctionné.

Il semble donc que cette nouvelle fonctionnalité d'édition nécessite la saisie de 4 ou 5 caractères plutôt que le précédent.

En vérifiant plus loin, nous pouvons toujours utiliser ' ... où bitval = 1 ' mais nous pouvons également utiliser également ' ... où bitval =' true ''. Mais tous les résultats renvoyés rendent ces colonnes de bits à 0 ou à 1. "

Tout cela ressemble à un demi-pas en arrière. Pas la fin du monde, mais une gêne inutile.

Quelqu'un a-t-il un aperçu de cette question? Ou y a-t-il d'autres nouveaux pièges avec SQL Server 2008?

Mise à jour 2012: Comme je viens d’installer SQL Server 2012, je constate que ce problème a été "corrigé" - comme je le pouvais auparavant, je peux maintenant saisir 1/0 plutôt que True / False directement dans les lignes, à l’aide de l’option 'Éditer les 200 premières lignes'. C'est une petite chose, mais je suis heureux.

Était-ce utile?

La solution

Sauf qu'ils ont fait sauter la règle et ne l'ont appliquée qu'à moitié. Essayez d'utiliser ... = True dans une instruction de mise à jour et voyez ce qui se passe. Soit aller tout le chemin ou pas du tout. Désolé Microsoft, je ne peux pas vous laisser de marques sur celui-là

Autres conseils

Vous avez toujours été en mesure d'utiliser "True" et "False" pour comparer des colonnes BIT ... Je pense que ce changement de "force" a été ajouté. il est bon de préciser que le champ est un BIT et non un INT.

Personnellement, j'aime bien le fait que C # ne supporte pas "if (0) ..." " Je suppose que c'est juste une préférence pour la clarté.

Je viens de trouver ceci (après avoir préparé quelque chose d'autre) Intégré par conception

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top