8152: String or binary data would be truncated
SQL Server의미
컬럼의 정의 길이보다 긴 데이터를 쓰려고 했다. SQL Server는 데이터 손실을 막기 위해 문장을 중단한다(2628은 컬럼/값을 보고하는 같은 오류의 새 버전이다).
원인
예를 들어 VARCHAR(10) 컬럼에 15자를 기록, 원본보다 좁은 대상 컬럼, 데이터 타입/길이 불일치, 또는 ETL/전송에서의 필드 크기 부족.
해결 방법
데이터에 맞게 컬럼을 넓히거나(ALTER TABLE ... ALTER COLUMN) 데이터를 줄인다. SQL Server 2019+에서는 넘친 테이블/컬럼/값을 보여 주는 2628 오류를 사용한다. 이전 버전에서는 LEN()으로 컬럼을 하나씩 확인해 문제 행을 찾는다. 전송 시 원본과 대상 스키마의 길이를 맞춘다.
같은 데이터베이스의 다른 항목
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ...
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint
- 18456Login failed for user
- 2628String or binary data would be truncated in table, column ...; truncated value
- 1222Lock request time out period exceeded
- 9002The transaction log for database is full due to ...
- 1105Could not allocate space for object in database because the filegroup is full