views:

2147

answers:

3

Is there a 4 byte unsigned int data type in MS SQL Server?

Am I forced to use a bigint?

Possible Duplicate: http://stackoverflow.com/questions/1509933/sql-server-4-byte-unsigned-int

+1  A: 

It doesn't seem so.

Here's an article describing how to create your own rules restricting an int to positive values. But that doesn't grant you positive values above 2^31-1.

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

Bill Karwin
+2  A: 

Can you just add/subtract 2,147,483,648 (2^31) to the regular int ? (subtract on the way in, & add coming out) I know it sounds silly, but if you declare a custom datatype that does this, it's integer arithmetic and very fast.... It just won't be readable directly from the table

Charles Bretana
Would there be a potential for overflow?
Cade Roux
No, your application values from 0 to 2^32 - 1 would map to the database values of - 2^31 - + 2^31 - 1
Charles Bretana
A: 

You can use bigint with checked the constraint, but datatype will still in 8 byte :(

Gus Leo