Мне нужно перенести данные (varbinary (max)) из одной таблицы в другую.При выполнении обновления для этого я получаю следующую ошибку
Msg 511, Level 16, State 1, Line 18
Cannot create a row of size 8078 which is greater than the allowable
maximum row size of 8060.
Это обновление, которое я использовал для копирования из таблицы DocumentPublication в DocumentVersion
UPDATE docver SET RecapRTF = CAST(RTFPublication as VARBINARY(MAX)) FROM
DocumentVersion docver INNER JOIN DocumentPublication docpub
ON docpub.IdDocumentVersion = DOCVER.id
или без приведения
UPDATE docver SET RecapRTF = RTFPublication FROM
DocumentVersion docver INNER JOIN DocumentPublication docpub
ON docpub.IdDocumentVersion = DOCVER.id
Выполняя обновление строки за строкой, я изолировал строку, которая выдает ошибку.Странно то, что данные в этом поле занимают всего 3950 байт, а другие строки с меньшим или большим количеством (например, 2000 байт или 20 МБ) работают нормально.
Затем я воссоздал таблицу назначения под другим именем итеперь он может копировать поле varbinary!?!?
Версия SQL Server 2008 R2 с последними обновлениями и база данных с совместимостью 100 (SQL Server 2008).Я запустил DBCC CHECKDB и DBCC CHECKALLOC и не нашел ошибок.
Есть какие-нибудь подсказки, что здесь может быть не так?