コンテンツへスキップ
ものがたり
戻る

maybe Maximum size for varchar is still 8064

SQL Serverを使ったことのある人なら、レコード長の最大サイズが8060バイトであることを知っている人も多いのではないかと思う。これと似たような話で、1つのカラムにおける信頼できる文字列長は、(たとえSQL Server 2005でこの8060バイトの壁が破れても)8064文字を超えることはないと思われる。ただし、この前提は、YukonがWindowsや.NETのCompareInfoと異なるSortKeyを生成する場合には成り立たないかもしれない。

説明するのがめんどくさいので以下のコードでQEDとする。

void DumpLevel5 (string s) {  

  byte [] data = new CultureInfo ("")  

    .CompareInfo.GetSortKey (s).KeyData;  

  int idx = 0;  

  for (int i = 0; i < 4; i++, idx++)  

    for (; data [idx] != 1; idx++)  

      ;  

    for (; idx < data.Length; idx++)  

      Console.Write ("{0:X02} ", data [idx]);  

  Console.WriteLine ();  

}

public static void Main ()
{
DumpLevel5 (’-’ + new string (‘A’, 10) + ’-’);
DumpLevel5 (’-’ + new string (‘A’, 100) + ’-’);
DumpLevel5 (’-’ + new string (‘A’, 100) + “—B—”);
DumpLevel5 (’-’ + new string (‘A’, 1000) + ’-’);
DumpLevel5 (’-’ + new string (‘A’, 10000) + ’-’);
DumpLevel5 (’-’ + new string (‘A’, 100000) + ’-’);
DumpLevel5 (’-’ + new string (‘A’, 1000000) + ’-’);
}


この記事を共有:

前の記事
私的録音録画保証金制度は消費者不在
次の記事
Google Summer of Code for Mono