IT 성장일기

[SQL Server] 문자열이나 이진 데이터는 잘립니다. (String or binary data would be truncated) 본문

Database/SQL Server

[SQL Server] 문자열이나 이진 데이터는 잘립니다. (String or binary data would be truncated)

고 양 2023. 11. 8. 11:07
반응형
문자열이나 이진 데이터는 잘립니다. (String or binary data would be truncated)

주로 컬럼 길이보다 긴 데이터를 삽입하려고 시도할 때 발생하는 예외입니다.
SQL Server(MS SQL)와 함께 작업을 하다 보면 꽤나 빈번하게 마주치는 예외메시지입니다.

컬럼의 최대 문자열 길이를 늘여주거나, 삽입하고자 하는 데이터의 길이를 줄이는 것으로 해결 수 있습니다.
개인적으로 문자열 데이터의 길이를 줄이는 것은 권장하지 않는데 그 이유는 다음과 같습니다.

  • 데이터의 손상이나 변경을 초래할 수 있음.
  • 컬럼의 길이를 초과하는 데이터의 삽입이 또 다시 실행될 수 있음. 

 

컬럼 길이 조절하기

아래 SQL을 실행하여 테이블의 컬럼 길이를 조회하고 수정할 수 있습니다.

/*컬럼 길이 조회하기*/
SELECT TABLE_NAME
     , COLUMN_NAME
     , DATA_TYPE
     , CHARACTER_MAXIMUM_LENGTH
FROM   INFORMATION_SCHEMA.COLUMNS 
WHERE  TABLE_NAME = '[table_name]'

/*컬럼 길이 수정*/
ALTER TABLE [table_name] 
ALTER COLUMN [column_name] 
VARCHAR(50) NULL; /*옵션은 필요에 따라 바꿔주세요.*/

 

컬럼 길이를 늘였는데 또 다시 같은 예외가 발생할 때에는 컬럼 길이를 MAX로 바꿔주거나 컬럼 타입을 TEXT로 설정하는 것이 좋겠습니다.

/*컬럼 길이 수정*/
ALTER TABLE [table_name] 
ALTER COLUMN [column_name] 
VARCHAR(MAX) NULL;
--TEXT NULL;

 

 

도움이 되어드렸다면 구독 / 좋아요 부탁드립니다.👏🏻

감사합니다.🙂

 

반응형