SQL Server Максимальный размер строки - PullRequest
11 голосов
/ 19 августа 2008

Наткнулся сегодня на эту ошибку. Хотите знать, если кто-нибудь может сказать мне, что это значит:

Невозможно отсортировать строку размером 9522, которая превышает допустимый максимум 8094.

Это 8094 байта? Персонажи? Поля? Является ли это проблемой при объединении нескольких таблиц, превышающих некоторый лимит?

Ответы [ 6 ]

10 голосов
/ 19 августа 2008

В SQL 2000 предел строки составляет 8 Кбайт, что соответствует размеру страницы в памяти.

[Изменить]

В 2005 году размер страницы такой же (8 КБ), но база данных использует указатели на строке на странице, чтобы указывать на другие страницы, которые содержат большие поля. Это позволяет 2005 году преодолеть ограничение размера строки 8 КБ.

7 голосов
/ 20 августа 2008

Проблема, которая, кажется, привлекает многих людей, состоит в том, что вы можете создать таблицу, которая по определению будет содержать более 8 КБ данных, и она примет ее просто отлично. И таблица будет работать нормально до тех пор, пока вы не попытаетесь вставить в нее более 8 КБ данных.

Итак, допустим, вы создали таблицу с целочисленным полем для первичного ключа и 10 полями varchar (1000). Таблица будет работать нормально большую часть времени, так как количество раз, когда вы заполните все 10 полей varchar (1000), будет очень мало. Однако даже в том случае, если вы попытались ввести 1000 символов в каждое из ваших полей, вы получите ошибку, упомянутую в этом вопросе.

3 голосов
/ 19 августа 2008

Этот пост справляется с попытками объяснить его (в контексте SQL 2005):

http://www.consortioservices.com/Blog/2008/02/28/MaximumRowSizeInSQLServer2005ToTheLimit.aspx

2 голосов
/ 30 марта 2010

Между прочим, выполнение этой команды SQL в вашей БД может решить проблему, если она вызвана пространством, которое необходимо освободить после удаления столбцов переменной длины:

DBCC CLEANTABLE (0,[dbo.TableName])

См .: http://msdn.microsoft.com/en-us/library/ms174418.aspx

0 голосов
/ 19 августа 2008

8094 байта.

Если вы перечислите дополнительную информацию о том, что вы делаете, это может помочь нам выяснить истинную причину.

0 голосов
/ 19 августа 2008

Раньше это было проблемой в SQL 2000, но я думал, что это исправлено в 2005 году.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...