8152: Строковые или двоичные данные были бы усечены
SQL ServerЧто это значит?
Вы попытались записать данные длиннее заданной длины столбца. SQL Server останавливает оператор, чтобы предотвратить потерю данных (2628 — более новая версия той же ошибки, сообщающая столбец/значение).
Почему возникает?
Например, запись 15 символов в столбец VARCHAR(10), целевой столбец уже исходного, несоответствие типа данных/длины или недостаточный размер поля при ETL/переносах.
Как исправить
Расширьте столбец под данные (ALTER TABLE ... ALTER COLUMN) или сократите данные. В SQL Server 2019+ используйте ошибку 2628, показывающую переполненные таблицу/столбец/значение; в старых версиях проверяйте столбцы по одному с помощью LEN(), чтобы найти проблемную строку. При переносах выравнивайте длины в схемах источника и приёмника.
Ещё по этой СУБД
- 2601Невозможно вставить строку с дублирующимся ключом в объект с уникальным индексом. Дублирующееся значение ключа: ...
- 547Оператор INSERT/UPDATE/DELETE конфликтует с ограничением FOREIGN KEY / CHECK
- 18456Ошибка входа для пользователя (Login failed)
- 2628Строковые или двоичные данные были бы усечены в таблице, столбце ...; усекаемое значение
- 1222Превышен тайм-аут запроса блокировки
- 9002Журнал транзакций базы данных заполнен по причине ...
- 1105Не удалось выделить место для объекта в базе данных, поскольку файловая группа заполнена