아니요, 어디에도 기록되지 않습니다. 투표하고 비즈니스 사례를 진술하십시오. 이것은 SQL Server에서 수정해야 할 긴 목록 중 하나입니다.
이것은 몇 년 전에 Connect (아마도 SQL Server 2000 또는 2005 시간대)에서 요청 된 다음 새로운 피드백 시스템에서 다시 요청되었습니다.
이제는 SQL Server 2019 에서 SQL Server 2017 CU12로 제공되었으며 향후 SQL Server 2016 SP2 CU에 나타날 것입니다.
SQL Server 2019의 최초 공개 CTP에서는 추적 플래그 460 만 표시됩니다. 이것은 비밀스러운 소리이지만 이 백서 에 게시되었습니다 . 앞으로는 기본 동작 (추적 플래그 필요 없음)이지만 새로운 데이터베이스 범위 구성을 통해이를 제어 할 수 있습니다 VERBOSE_TRUNCATION_WARNINGS
.
예를 들면 다음과 같습니다.
USE tempdb;
GO
CREATE TABLE dbo.x(a char(1));
INSERT dbo.x(a) VALUES('foo');
GO
SQL Server 2019 이전의 모든 지원 버전 결과 :
메시지 8152, 수준 16, 상태 30, 줄 5
문자열 또는 이진 데이터가 잘립니다.
그 진술서는 만료되었습니다.
이제 SQL Server 2019 CTP에서 추적 플래그가 활성화되었습니다.
DBCC TRACEON(460);
GO
INSERT dbo.x(a) VALUES('foo');
GO
DROP TABLE dbo.x;
DBCC TRACEOFF(460);
도시를 테이블, 열 및 (결과 절단 이 아니라 전체 ) 값 :
메시지 2628, 수준 16, 상태 1, 줄 11
문자열 또는 이진 데이터는 테이블 'tempdb.dbo.x', 열 'a'에서 잘립니다. 잘린 값 : 'f'.
그 진술서는 만료되었습니다.
당신이 모든을 삭제하고 SQL 서버 2019, 또는 푸른 SQL 데이터베이스로 이동하려면 업그레이드 할 때까지 실제로에서 MAX_LENGTH을 당겨에, 당신은 당신의 "자동으로 자료"코드를 변경할 수 있습니다 sys.columns
어쨌든이 점점하고 적용해야하는 이름과 함께, LEFT(column, max_length)
또는 PG의 동등한 것은 무엇이든. 또는 이는 자동으로 데이터를 잃게된다는 것을 의미하므로 불일치하는 열을 찾아 소스의 모든 데이터에 맞도록 대상 열을 수정하십시오. 두 시스템 모두에 대한 메타 데이터 액세스와 소스-> 대상 열을 자동으로 일치시켜야하는 쿼리를 작성하고 있다는 사실을 감안할 때 (그렇지 않으면이 오류는 가장 큰 문제는 아닐 것입니다.) 무차별 강제 수행 할 필요가 없습니다. 전혀 추측.
sys.columns
쿼리를 "자동으로"생성하기 위해 현재 사용중인 코드를 전혀 몰랐기 때문에 코드 참조를 작성하지 않았습니다 . 실제로 코드에 통합하는 것보다 훨씬 복잡하지는 않습니다SELECT name, object_id, max_length FROM sys.columns;
. 이 작업을 수행 해야하는 자동 코드가 이미 있기 때문에 예제가 필요하다고 생각하지 않았습니다.