"문자열 또는 이진 데이터가 잘릴 것"의 원인을 확인하는 효율적인 방법이 있습니까?


13

질문 에 대한 후속 조치 입니다. 또한 Microsoft 의이 기능 요청 과 관련이 있습니다 .

그러나, 몇 년이 지났고 몇 차례의 주요 릴리스가보고 된 이후 시장에 출시되었습니다.

질문 : SQL Server 2017은이 오류의 근본 원인을 쉽게 찾을 수있는 메커니즘을 제공합니까? 아니면 약 9 년 전에 문제가보고 된 것처럼 조사하기가 어렵습니까?


나는이 단일 오류를 디버깅하는 데 일주일에 4 시간 이상을 소비하며 SQL은 직업 설명조차하지 않습니다.
Tonny

답변:


20

변경 사항이 없습니다. SQL Server 2017은 여전히 ​​동일한 모호한 오류 메시지를 제공하며 문제가되는 행 / 열을 검색하는 메커니즘을 제공하지 않습니다.

Connect가 종료되었을 때이 Connect 항목에 1,600 표가 넘었습니다.

Microsoft의 최신 의견은 다음과 같습니다.

최신 업데이트-개발자는 전체 수정 프로그램 작성과 관련된 문제를 이해합니다. 삽입 또는 업데이트 성능에 영향을주지 않는 방식으로 전체 오류 메시지를 생성하는 데 필요한 열에 대한 정보를 실제 변환 함수로 축소하는 것은 까다로울 수 있습니다. 잘리는 데이터의 유형과 길이를 기록하는 것과 같이 단기적으로 저렴한 것을 구현할 수 있습니다. 그러한 수정이 공개적으로 공개되는 시점을 알기에는 아직 이르다.

내가 제안 할 수있는 최선의 방법은 해당 항목에 투표하는 것입니다.


+1. 응용 프로그램 로그가없는 경우 문제를 찾는 비효율적 인 방법 중 하나를 추가하려면 프로파일 러 및 필터를 사용하십시오 (host / user / app / query / etc 별). 또한 유용 할 수 있습니다 : nimblegecko.com/…
jean

3

이 MDSN 블로그 게시물에서 알 수 있듯이 우리의기도는 응답되었습니다 .

SQL Server 2019에는 추가 컨텍스트 정보가 포함 된 새 메시지가 도입되었습니다.

오류는 이제 훨씬 더 의미가 있어야합니다.

메시지 2628, 수준 16, 상태 1, 줄 14 문자열 또는 이진 데이터는 테이블 'DbName.SchemaName.TableName', 열 'Col'에서 잘립니다. 잘린 값 : '...'.

또한이 변경 사항은 2017 년과 2016 년에 모두 백 포트 될 것입니다.

이 새 메시지는 SQL Server 2017 CU12 (및 곧 출시 될 SQL Server 2016 SP2 CU)에도 백 포트되지만 기본적으로는 아닙니다. 세션 또는 서버 레벨에서 메시지 ID 8152를 2628으로 바꾸려면 추적 플래그 460을 활성화해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.