см. int, bigint, smallint и tinyint
BIGINT
Целочисленные (целые числа) данные из -2 ^ 63
(-9,223,372,036,854,775,808) через
2 ^ 63-1 (9 223 372 036 854 775 807).
Размер хранилища составляет 8 байт.
INT
Целочисленные (целые числа) данные от -2 ^ 31
(-2 147 483 648) - 2 ^ 31 - 1
(2147483647). Размер хранилища 4
байт. Синонимом SQL-92 для int является
целое число.
ОП сказал:
Я считаю, что 1999999999 [<2 ^ 32]
вставляется правильно и
2999999999 [> 2 ^ 32] не
1,999,999,999
подходит для int, потому что оно меньше 2,147,483,647
, а 2,999,999,999
- потому что оно больше 2,147,483,647
.
Лучше всего использовать varchar(10)
для хранения номера телефона. Если вас беспокоит получение символов, отличных от цифр, в вашей строке, вы можете проверить это следующим образом:
вы можете проверить свою строку следующим образом:
declare @PhoneNumber varchar(10)
select @PhoneNumber='123e0'
if @PhoneNumber LIKE '%[^0-9]%'
print 'NOT NUMERIC'
else
print 'NUMERIC'
select @PhoneNumber='1234567890'
if @PhoneNumber LIKE '%[^0-9]%'
print 'NOT NUMERIC'
else
print 'NUMERIC'
вот что вы получаете при запуске вышеупомянутого:
NOT NUMERIC
NUMERIC