Jim Hogg de Microsoft ha respondido a este problema con lo siguiente:
Hay pros y contras. En el lado profesional, parece una buena manera de evitar algunos errores: tener que verificar que un int (firmado) tenga un valor> 0. Y también me aventuraría a que muchos usos de int de hecho se relacionan con conteos que nunca deberían ser negativos de todos modos . Sobre la cuestión de duplicar el recuento máximo de filas - Es cierto, pero yo diría que esto es menos convincente.
Por el lado de las desventajas ... mezclar tipos con signo / sin signo en C o C ++ parece que debería ser lo suficientemente simple. No es. Abre una pequeña tarpit de errores difíciles de encontrar, principalmente debido a las complejas reglas para promociones / ampliaciones implícitas. SQL, por desgracia, ya tiene un conjunto aún más complejo de reglas de conversión implícitas. Me temo que agregar entrantes sin firmar nos confundiría aún más.
Mantendré esta sugerencia en los libros. Pero, entre todas las características que podríamos / deberíamos agregar, esta, con respeto, no está cerca de la parte superior de esa lista.
Fuente: Microsoft Connect
Agregaría significativamente a la lista de profesionales y reiteraría que su motor SQL ya está haciendo cosas MUCHO más complejas que esto, por lo que su equipo puede manejar la complejidad adicional. Si bien no estoy de acuerdo con su resumen, esta es la razón por la cual SQL Server no admite tipos sin firmar .
El enlace Connect fue publicado originalmente por Martin Smith en los comentarios de la pregunta.