2008-11-20 11 views

Trả lời

15

Bạn có thể chỉ cần thêm/trừ 2.147.483.648 (2^31) đến int thường xuyên? (trừ trên đường vào, & thêm ra) Tôi biết nó có vẻ ngớ ngẩn, nhưng nếu bạn khai báo một kiểu dữ liệu tùy chỉnh thực hiện điều này, đó là số học số nguyên và rất nhanh .... Nó sẽ không thể đọc được trực tiếp từ bảng

+0

Có khả năng tràn không? –

+2

Không, giá trị ứng dụng của bạn từ 0 đến 2^32 - 1 sẽ ánh xạ tới giá trị cơ sở dữ liệu của - 2^31 - + 2^31 - 1 –

+0

Trước khi phân tích google xuất hiện, ở đó wer e rất nhiều công ty làm cho phần mềm theo dõi thống kê web. Tôi nhớ rằng đây là cách rất nhiều người trong số họ lưu trữ các địa chỉ IP mà không cần đến bigint ... – GWR

0

Bạn có thể sử dụng bigint với kiểm tra các ràng buộc, nhưng datatype sẽ vẫn còn trong 8 byte :(

+0

đó là lý do tại sao đây không phải là giải pháp khả thi ở tất cả – Pacerier

-3

tôi đã sử dụng bint (11) thay vì INT (11), và nó hoạt động như unsigned int (11)

+1

Tôi khá chắc chắn đó không phải là câu trả lời hợp lệ cho SQL Server. Câu hỏi được hỏi với thẻ 'sql-server-2005'. –