Jim Hogg da Microsoft respondeu a esse problema com o seguinte:
Há prós e contras. No lado profissional, parece uma boa maneira de evitar alguns erros - ter que verificar um int (assinado) tem valor> 0. E eu também arriscaria que muitos usos de int estejam de fato relacionados a contagens que nunca deveriam ser negativas de qualquer maneira . Sobre a questão de duplicar a contagem máxima de linhas? - verdade, mas eu diria que isso é menos atraente.
Do lado contrário ... misturar tipos assinados / não assinados em C ou C ++ parece que deve ser bastante simples. Não é. Ele abre um pequeno leito de erros difíceis de encontrar - principalmente devido às regras complexas para promoções / ampliações implícitas. O SQL, infelizmente, já possui um conjunto ainda mais complexo de regras de conversão implícita. Adicionar ints não assinados, temo, nos confundiria ainda mais.
Vou manter essa sugestão nos livros. Mas, dentre todos os recursos que poderíamos / deveríamos adicionar, este, com respeito, não está perto do topo dessa lista.
Fonte: Microsoft Connect
Eu acrescentaria significativamente à lista de profissionais e reiteraria que o mecanismo SQL deles já está fazendo coisas MUITO mais complexas do que isso, para que sua equipe possa lidar com a complexidade adicional. Embora eu não concorde com seu somatório, é por isso que o SQL Server não oferece suporte a tipos não assinados .
O link do Connect foi originalmente publicado por Martin Smith nos comentários da pergunta.