2008-12-03 27 views
5

Tại sao nvarchar (256) có vẻ là tiêu chuẩn cho tên người dùng trong SQL Server?nvarchar (256) ....?

Bất kỳ chức năng hệ thống mà trả về một nvarchar tên người dùng quay trở lại (256), nhà cung cấp ASP thành viên sử dụng nvarchar (256)

256 có vẻ như một số lẻ (vâng, tôi biết nó thậm chí ...) - 255 Tôi có thể hiểu (1 byte địa chỉ) nhưng 256 không có ý nghĩa với tôi.

Có ai giải thích được không?

Trả lời

13

Là lập trình viên chúng tôi tự động đếm bắt đầu từ 0, nhưng trong trường hợp này nvarchar (0) sẽ có nghĩa là không có ký tự. Hóa ra 256 là số tròn đẹp của bạn 2^8.

+0

Chờ ... Tôi có thể đang hiển thị ass của mình, nhưng nếu nó là nvarchar, điều đó có nghĩa là mỗi cái là một unicode char. Mỗi char là 16 bit (nvarchar -> utf-16 ??), vì vậy 256 * 16 = 4096 bit hoặc 512 byte? Liệu tôi có sai? – Will

+0

(tất nhiên, * varchars chỉ giữ những gì trong đó, nchar (256) sẽ chiếm 512 byte trong cơ sở dữ liệu) – Will

+0

Vâng, tất nhiên bạn nói đúng. Tôi đã suy nghĩ "256 khả năng phù hợp trong một byte, đó là 0-255) ... – Rich

2

2^8 là 256, không 255.

Nhiều lần bạn sẽ thấy đánh số đề án 0-255 đó là 256 số khi bạn bao gồm 0.

1

Kinh nghiệm cho thấy, trên cơ sở dữ liệu khác nhau trên một khoảng thời gian, 256 có vẻ là giá trị tối thiểu cho độ dài tối đa của các trường chuỗi. Tôi sẽ không ngạc nhiên nếu nó quay trở lại dBASE.