2008-12-04 9 views
7

Je travaille avec une application qui utilise des nombres plutôt grands et j'ai besoin de stocker des données sous la forme d'un entier 64 bits non signé. Je préfère simplement le stocker sans me soucier de la manipulation des bits ou quoi que ce soit de sorte que différents programmes puissent utiliser les données de différentes manières. Autant que je sache, vous devez créer un type personnalisé.Comment stockez-vous des entiers 64 bits non signés dans SQL Server?

Répondre

2

Pointeurs here bien que cet article est plus pour limiter les nombres négatifs ...

5

Vous pouvez stocker la valeur dans un type NUMERIC avec un scale de 0, qui conservera la sémantique integer nécessaires. Le type NUMERIC autorisera les nombres négatifs, bien que vous puissiez définir une contrainte pour exiger des nombres entiers positifs.

Le maximum precision pour NUMERIC est de 38 chiffres décimaux. 2**64 est quelque part autour de 18 ou 19 chiffres décimaux, donc NUMERIC(19,0) fonctionnerait probablement très bien pour ces données.

+5

est-ce pas 2 à la puissance de 64 '18, 446.744.073.709.551.616' - ou 20 chiffres? Si oui, cela signifie-t-il que vous avez besoin d'un NUMERIC (20,0) pour le stocker? –