Максимальный размер varchar (max) в SQL Server 2000

Это лучше сделать как:

-- 7 Days:
set @n:=date(now() + interval 1 day);
SELECT qb.day_series as days , COALESCE(col_byte, 0) as Bytes from tbl1 qa
    right join (
        select (select @n:= @n - interval 1 day) day_series from tbl1 limit 7 ) as qb 
    on date(qa.Timestamp) = qb.day_series and 
qa.Timestamp > DATE_SUB(curdate(), INTERVAL 7 day) order by qb.day_series asc

-- 30 Days:
set @n:=date(now() + interval 1 day);
SELECT qb.day_series as days , COALESCE(col_byte, 0) as Bytes from tbl1 qa
    right join (
        select (select @n:= @n - interval 1 day) day_series from tbl1 limit 30 ) as qb 
    on date(qa.Timestamp) = qb.day_series and 
qa.Timestamp > DATE_SUB(curdate(), INTERVAL 30 day) order by qb.day_series asc;

или без переменной:

SELECT qb.day_series as days , COALESCE(col_byte, 0) as Bytes from tbl1 qa
right join (
    select curdate() - INTERVAL a.a day as day_series from(
        select 0 as a union all select 1 union all select 2 union all 
        select 3 union all select 4 union all 
        select 5 union all select 6 union all select 7
    ) as a ) as qb
on date(qa.Timestamp) = qb.day_series and
qa.Timestamp > DATE_SUB(curdate(), INTERVAL 7 day) order by qb.day_series asc;
13
задан Joulukuusi 18 November 2012 в 20:26
поделиться

4 ответа

VARCHAR 8000 и NVARCHAR 4000.

Вот ссылка Varchar MSDN:
http://msdn.microsoft.com/en-us/library/aa258242 (SQL.80). .Aspx

24
ответ дан 1 December 2019 в 19:02
поделиться

Страница данных SQL Server имеет 8к: 8192 байта. Из этой части зарезервировано для заголовка страниц, оставив 8060 байтов, максимальный Lnegth один ряд может иметь. В ряду вершины VARBARIANY (N), VARCHAR (N) и NVARCHAR (N) не могут превышать 8000 байтов, что означает, что Varchar (8000) является максимальным длиной ASCII, а Nvarchar (4000) - максимальная длина Unicode (поскольку Unicode хранит каждый персонаж на 2 байтах).

Лучшее объяснение всех этих деталей происходит из внутри механизма хранения: анатомии страницы .

11
ответ дан 1 December 2019 в 19:02
поделиться

Я следовал примеру Microsoft и не заметил, что объявления в GUI.Designer.cs (автоматически, по среде IDE) и в GUI.cs (вручную, из примера) являются избыточными.

=== GUI.cs ===
public GUI()
{
    InitializeComponent();
    this.lvwFiles.DragDrop += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragDrop);
    this.lvwFiles.DragEnter += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragEnter);
}

=== GUI.Designer.cs ===
// 
// lvwFiles
//
... 
this.lvwFiles.DragDrop += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragDrop);
this.lvwFiles.DragEnter += new System.Windows.Forms.DragEventHandler(this.lvwFiles_DragEnter);
-121--4460381-

Агрегат - это подходящее место для начала:

SortedList<TKey, TSource> resultlist = new SortedList<TKey, TSource>();
MyBigList.Aggregate(resultlist, (aktlist,entry) => {
   aktlist.Add(entry.Key, entry);
   if (aktlist.Count > 10) aktlist.RemoveAt(10);
   return aktlist;
});

Если требуется другой компаратор, можно указать его в конструкторе SortedList .

EDIT Как указано nikie, SortedList не может содержать двойных значений. Для достижения того же эффекта можно использовать стандартный список вместе с BinureSearch :

List<TSource> resultlist = new List<TSource>();
MyBigList.Aggregate(resultlist, (aktlist, entry) => {
   int index = aktlist.BinarySearch(entry);
   if (index < 0) index = ~index;
   if (index < 10) aktlist.Insert(index, entry);
   if (aktlist.Count > 10) aktlist.RemoveAt(10);
   return aktlist;
});

В качестве параметра для BinureSearch снова можно использовать пользовательский компаратор (вместе с пользовательским выбором ключей).

-121--2839495-

Максимальный размер varchar (max) велик (2GB или 2Gchars, я думаю). Максимальное значение, которое можно задать для n в varchar (n), равно 8000, а для nvarchar - 4000.

2
ответ дан 1 December 2019 в 19:02
поделиться

Насколько я помню, это 8000 символов.

для Nvarchar это 4000.

2
ответ дан 1 December 2019 в 19:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: