SQL Server 2008 – Entier non signé de Types de Données

Je suis à l'aide de SQL SERVER 2008, j'ai un nombre de type INT, SMALLINT champs de mes tables, Et je sais qu'ils seront tous à 0 ou supérieure à 0 c'est à dire que je peux les prendre non signé.

Est-il un moyen simple de créer/utiliser Unsigned types de données OU devrai-je Créer type->Faire de la Règle->Utiliser le Type Créé; comme spécifié dans l'article suivant?

http://www.julian-kuiters.id.au/article.php/sqlserver2005-unsigned-integer

Si c'est la seule façon d'utiliser non signé dans SQL, est-il un inconvénient/inconvénient de l'utilisation d'?

Si la raison en est que vous voulez juste pour s'assurer que la valeur est supérieure à égale à zéro, alors vous pouvez utiliser un simple CHECK contrainte sur la colonne.
En prenant non signé, nous pouvons utiliser la mémoire/stockage dans une meilleure façon. Et la raison n'est PAS de s'assurer que la valeur est supérieure à 0 OU pas. C'est purement pour le bien de sauver la mémoire.
On dirait que vous essayez d'optimiser quelque chose que vous ne devriez pas. Laissez le SGBD gérer sa mémoire, c'est très bien.
Je vais avoir lakhs de lignes dans ma table, et il y a une colonne dont la valeur doit être dans la gamme de 50000-60000, n'est-ce pas une bonne idée de prendre comme smallint unsigned. Aussi, j'ai un autre cas où Unsigned Int peut être utilisé à la place de type Bigint.
Il suffit d'utiliser une integer et ajouter un CHECK contrainte ou de déclencheurs pour vérifier les valeurs.

OriginalL'auteur user899055 | 2011-09-01