2017-12-13 3 views
1

SSIS를 사용하여 500에서 300 만 행을 여러 테이블에 삽입합니다. 데이터 소스는 플랫 CSV 파일에서 다른 DB (Oracle, MySQL, SQL Server)에 이르기까지 다양합니다.대량/대량 삽입시 행을 구별 할 수있을만큼 정확한 날짜 시간 필드

"inserted_on"열을 만들려고합니다. 행을 추가 할 때의 날짜/시간 스탬프를 표시하고 이전 및 다음 행을 구별 할만큼 정확해야합니다. 다른 말로하면, 모든 행은 정말로 가까운 경우에도 다른 날짜 시간 값을 가져야합니다.

datetime2(7) 필드의 기본값을 (gettime())으로 시도했지만 충분히 정확하지는 않습니다.

+0

삽입 순서를 확실히 알고 싶다면 시간에 의존하기보다는 늘어나는 ID 필드를 사용하여 행 삽입을 나타내야합니다. 언급 한 것처럼 datetime2의 최대 정밀도가 반드시 고유하지는 않습니다. – ZLK

+1

GETDATE() 대신에'SYSDATETIME()'을 사용하여 밀리 세컨드 이하의 정밀도를 유지하십시오. 하나. 당신은 여전히 ​​동점을 없애기 위해 점진적인 가치가 필요할 수 있습니다. –

답변

2

in this answer으로 설명한대로 timestamp을 사용해야합니다.

documentation here 또는 추가 정보 available here을 참조하십시오.

희망 도움말.

+0

참고 : SQL Server에서 CURRENT_TIMESTAMP는 데이터 유형이 DATETIME이고 TIMESTAMP와 관련이 없습니다 (ROWVERSION과 동일하며 실제 타임 스탬프와 관련 없음). 'ROWVERSION'에 대한 문서는'TIMESTAMP'가 가치가있는 것을 위해 더 이상 사용되지 않을 것이라고 지적합니다. – ZLK

+0

업데이트 주셔서 감사합니다 @ZLK. 감사! 내가 이것을 SSIS 수입품과 함께 널리 사용함에 따라 사용되지 않는 뉴스가 나를 놀라게합니다. – ViKiNG

+0

이제 ID가 증가하거나'timestamp' /'rowversion'을 사용해야합니까? – IMTheNachoMan

관련 문제