SQL Server Максимальный размер строки
Произошла ошибка. Хотите узнать, что это значит:
Невозможно отсортировать строку размером 9522, которая больше допустимого максимума 8094.
Это 8094 байта? Персонажи? Поля? Это проблема, связанная с несколькими таблицами, превышающими некоторый предел?
Ответы
Ответ 1
В SQL 2000 ограничение строки составляет 8 Кбайт, что соответствует размеру страницы в памяти.
[изменить]
В 2005 году размер страницы тот же (8K), но база данных использует указатели в строке на странице, чтобы указать на другие страницы, содержащие большие поля. Это позволяет 2005 году преодолеть ограничение размера строки 8K.
Ответ 2
Проблема, которая, как кажется, ломает много людей, заключается в том, что вы можете создать таблицу, которая по определению будет содержать более 8 Кбайт данных, и она примет ее просто отлично. И таблица будет работать нормально, вплоть до момента, когда вы на самом деле пытаетесь вставить в таблицу больше 8K данных.
Итак, скажем, вы создаете таблицу с целым полем, для первичного ключа и 10 полей varchar (1000). Таблица будет работать отлично в большинстве случаев, так как количество раз, когда вы заполняете все 10 полей varchar (1000), будет очень мало. Howerver, даже если вы попытались поместить 1000 символов в каждое из полей, это даст вам ошибку, упомянутую в этом вопросе.
Ответ 3
Это сообщение делает справедливую работу при попытке объяснить это (в контексте SQL 2005):
http://www.consortioservices.com/Blog/2008/02/28/MaximumRowSizeInSQLServer2005ToTheLimit.aspx
Ответ 4
FYI, выполнение этой команды SQL в вашей БД может устранить проблему, если она вызвана пространством, которое должно быть исправлено после удаления столбцов переменной длины:
DBCC CLEANTABLE (0,[dbo.TableName])
Смотрите: http://msdn.microsoft.com/en-us/library/ms174418.aspx
Ответ 5
Это было проблемой в SQL 2000, но я думал, что это было исправлено в 2005 году.
Ответ 6
8094 байта.
Если вы перечислите некоторую дополнительную информацию о том, что вы делаете, это может помочь нам разобраться в фактической причине.