본문 바로가기

프로그래밍/MSSQL

[MSSQL] 문자열이나 이진 데이터는 잘립니다

반응형

 

 

 

 

해당 칼럼의 데이터 길이보다 큰 값을 넣으려고 할 때 발생하는 오류

 

 

예제와 함께 살펴보자

 

 

varchar(10) 형식의 name 칼럼을 가진 table_ggmouse 테이블이 있다.

 

sp_help 'table_ggmouse'

 

sp_help 'table_ggmouse' 결과

 

 

 

 

문제 상황

name 칼럼에 'my name is ggmouse'라는 값을 넣으려고 하자 다음과 같은 메시지가 반환됐다.

 

메시지 8152, 수준 16, 상태 14, 줄 6

문자열이나 이진 데이터는 잘립니다.

 

INSERT INTO table_ggmouse([name]) VALUES ('my name is ggmouse')

 

결과

 

 

 

해당 문자열의 길이는 18이다. 즉, 넣으려는 칼럼의 데이터길이보다 큰 값이다.

 

SELECT LEN('my name is ggmouse')

 

문자열의 문자수

 

 

 

 

 

 

 

해결 방법

1. 칼럼의 데이터 길이에 맞는 값을 넣자

 

INSERT INTO table_ggmouse([name]) VALUES ('ggmouse')

 

결과

 

 

 

2. 칼럼의 데이터 길이를 더 크게 변경하자

 

ALTER TABLE table_ggmouse ALTER COLUMN [name] VARCHAR(30)

 

결과

 

INSERT INTO table_ggmouse([name]) VALUES ('my name is ggmouse')

 

결과

 

 

 

 

 

[MSSQL] LEN / DATALENGTH (문자열의 문자 수 / 바이트 수)

 

 

 

반응형