SQL Server ETL( Extract, Transform, Load ) 작업 시 많이 겪는 에러 중 하나가 

“String or binary data would be truncated” 입니다.

 

이는 테이블 컬럼에 정의된 문자열 길이보다 큰 데이터 입력되는 상황에서 발생되는 오류사항으로

원인을 찾기가 어려운 경우가 있습니다.

 

SQL Server 2019 CTP 2.0 부터는 문자열 잘림에 대한 에러 메시지를 쉽게 확인할 수 있도록 개선되었습니다.

 

사용방법은 추적 플래그 460을 활성화(기본 비활성화 상태) 하는 것이며 오류 메시지에 Table 및 컬럼과

Data 정보까지 출력되어 오류가 발생하는 부분을 바로 확인할 수 있습니다.

 

단 해당 설정은 SQL 버전이 SQL Server 2017(14.x) CU12 이상의 빌드에 적용됩니다.

 

 

<예제 Script>

print '/*TRACE ON 460***********************************************/'
CREATE TABLE _Tempest(Txt NVARCHAR(10))
DBCC TRACEON(460)
--DBCC TRACESTATUS(460)
INSERT INTO _Tempest SELECT '1234567890123'
DROP TABLE _Tempest
print '/***********************************************************/'

print '/*TRACE OFF 460*********************************************/'
CREATE TABLE _Tempest(Txt NVARCHAR(10))
DBCC TRACEOFF(460)
--DBCC TRACESTATUS(460)
INSERT INTO _Tempest SELECT '1234567890123'
DROP TABLE _Tempest
print '/***********************************************************/'

<처리 결과>

읽어주셔서 감사합니다.

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기