Есть ли в MS SQL Server 4-байтовый беззнаковый тип данных int?
Я вынужден использовать bigint?


Не похоже.
Вот статья, описывающая, как создать свои собственные правила, ограничивающие int положительными значениями. Но это не дает вам положительных значений выше 2^31-1.
http://www.julian-kuiters.id.au/article.php/sqlserver2005-unsigned-integer
Можете ли вы просто добавить / вычесть 2147483648 (2 ^ 31) к обычному int? (вычесть по пути и прибавить выход) Я знаю, это звучит глупо, но если вы объявляете настраиваемый тип данных, который делает это, это целочисленная арифметика и очень быстрая .... Это просто не будет читаться прямо из таблицы
Нет, значения вашего приложения от 0 до 2 ^ 32-1 будут отображаться в значениях базы данных - 2 ^ 31 - + 2 ^ 31-1.
До появления Google Analytics было намного больше компаний, производящих программное обеспечение для отслеживания веб-статистики. Я помню, что так многие из них сохраняли IP-адреса, не заходя в bigint ...
Вы можете использовать bigint с проверенным ограничением, но тип данных по-прежнему будет в 8 байтах :(
вот почему это вообще не жизнеспособное решение
Я использовал BINT (11) вместо INT (11), и он действует как UNSIGNED INT (11)
Я почти уверен, что это неправильный ответ для SQL Server. Вопрос задавался с тегом sql-server-2005.
Будет ли возможность переполнения?