20. February 2011 20:16
Here is a really simple solutions to create and unsigned int on ms sql server. The following has been tested on sql server 2008. Unfortunatly there is no native support for an unsigned int but we can force the functionality with using a big int and creating a set of rules based on a custom type. If we really still wanted to create an unsigned int we could of course use a .net clr class and build our own type.
CREATE TYPE dbo.uint
CREATE RULE uint_range
AS @i >= 0 AND @i <= 4294967295
EXEC sp_bindrule 'uint_range', 'uint'
These sorts of rules are also useful for creating any custom type. eg phone number or such as well. The major difference is the rule is on the type not on the table constraint so they can be changed in all table's where they are being used at the same time.