SQL Server Максимальный размер строки

Произошла ошибка. Хотите узнать, что это значит:

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

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

Ответ 1

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

[изменить]

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

Ответ 2

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

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

Ответ 4

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

DBCC CLEANTABLE (0,[dbo.TableName])

Смотрите: http://msdn.microsoft.com/en-us/library/ms174418.aspx

Ответ 5

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

Ответ 6

8094 байта.

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