2008-12-03 12 views
5

Dlaczego nvarchar (256) wydaje się być standardem dla nazw użytkowników w SQL Server?nvarchar (256) ....?

Wszelkie funkcje systemowe, które zwracają nvarchar nazwa użytkownika powrotną (256), dostawca Membership ASP wykorzystuje nvarchar (256)

256 wydaje się nieparzystą liczbę (tak, wiem, że jeszcze ...) - 255 Rozumiem (adres 1-bajtowy), ale 256 nie ma dla mnie sensu.

Czy ktoś może wyjaśnić?

Odpowiedz

13

Jako programiści automatycznie liczymy od 0, ale w tym przypadku nvarchar (0) oznaczałoby brak znaków. Okazuje się, że 256 to twoja fajna liczba okrągła 2^8.

+0

Czekaj ... Mogę pokazywać swój tyłek, ale jeśli jest to nvarchar, oznacza to, że każdy jest symbolem Unicode. Każdy znak ma 16 bitów (nvarchar -> utf-16 ??), więc 256 * 16 = 4096 bitów lub 512 bajtów? Czy się mylę? – Will

+0

(oczywiście * varchary przechowują tylko to, co jest w nich, nchar (256) zajmie 512 bajtów w bazie danych) – Will

+0

Tak, oczywiście masz rację. Myślałem "256 możliwości mieści się w jednym bajcie, to jest 0-255) ... – Rich

2

2^8 jest 256, a nie 255.

Wiele razy będzie można zobaczyć od schematów numeracji 0-255, który jest 256 numerów, gdy obejmują 0.

1

Doświadczenie sugeruje, że w różnych bazy ponad czas 256, wydaje się być minimalną wartością dla maksymalnej długości pól łańcuchowych. Nie zdziwiłbym się, gdyby wrócił do dBASE.