2011-08-22 5 views
1

한 테이블의 데이터를 다른 테이블에 삽입하려고합니다. 두 테이블 모두 약 100 개의 열을가집니다. 그들은 구조가 같지 않지만 "거의": 원본 테이블의 열 수가 약 20 개 줄고 일부는 NOT NULL입니다. 그 열에 대해서는 물론 기본값을 정의해야합니다."열 이름 또는 제공된 값 수가 테이블 정의와 일치하지 않습니다."오류를 일으키는 열의 이름을 가져 오는 방법

내 첫 재판이 오류 메시지 (깜짝 놀랄) 결과 : 테이블 정의를

하지만 내 복잡한 경우에 일치하지 않는

열 이름 또는 제공 값의 수를,이 메시지는 별로 도움이 안된다. 더 정확한 오류 메시지를 얻을 수있는 방법이 있습니까?

+1

100 cols? 피타처럼 들리는 군. – Jacob

+0

불행히도 : 아니, 두렵다 - SQL Server는 이것보다 훨씬 더 많이 알려주지 않는다 :-( –

+0

불일치가있는 곳을 찾기 위해 원본 열과 대상 열을 나란히 놓았습니까? – MaxiWheat

답변

2

RDBMS의 오류 메시지를 사용하는 대신 쿼리를 읽기 쉽게 만드는 것이 좋습니다. 한 생각 :

  • 각 열을 한 줄에 둡니다.
INSERT INTO TargetTable (
    Col1, 
    Col2, 
    .... 
) 
SELECT 
    Col1, 
    Col2, 
    .... 
FROM SourceTable 
  • 새 Excel 시트를 만들 수 있습니다.
  • SQL Server Management Studio에서 Alt-F1 your TargetTable; Column_name (및 Nullable 값)을 Excel 시트의 ColumnA에 복사하여 붙여 넣습니다.
  • TargetBable 열을 ColumnB에 복사하여 붙여 넣습니다.
  • 매크로를 실행하거나 차이를 시각적으로 검사/조정하십시오. 당신이 언급 한 nullables는 당신이 알고 있어야합니다.
관련 문제