2009-04-16 7 views
0

내 고객이 고용 한 컨설턴트가 SQL Server 2000 데이터베이스 중 하나 인 csv 형식의 모든 테이블 중 첫 번째 n 행 (약 30 개 또는 40 개)을 column 첫 번째 행의 이름. 데이터베이스에는 약 100 개의 테이블이 있으므로이 작업을 수동으로 수행하고 싶지는 않습니다.SQL Server 전체 데이터베이스 csv 내보내기

누구나 신속하게이를 수행 할 수있는 스크립트, 도구 또는 다른 방법을 권장 할 수 있습니까?

답변

1

잠재적으로 SQL Server 2000의 DTS (데이터 변환 서비스)를 사용할 수 있으며 모든 것을 Excel 시트로 내보낼 수 있습니까? 마크

+0

의심 할 여지없이 가장 간단한 해결책입니다. 나는 csv 내보내기 (한 번에 하나의 테이블 만 수행 할 수 있음)를 스크립팅 할 필요가 있다고 생각했지만 xls를 통해가는 것은 충분히 좋을 것입니다. – Cruachan

+0

사용할 수있는 도구에 대한 명백한 해결책을 볼 수 없습니다 , 응? ;-) –

3

이는 현재 데이터베이스에 당신에게 각 테이블에서 상위 30 기록을 줄 것이다 엔터프라이즈 관리자

EXEC sp_MSForEachTable 'SELECT top 30 * from ?' 

에서이보십시오. 결과를 텍스트 파일로 출력 할 수 있습니다.

+0

+1 (내보내기에서 열 제목) 문제가 해결되지 않더라도 유용합니다. – Cruachan

+0

아 맞습니다! 눈금 대신 결과를 텍스트 (Ctrl + T)로 가져 오도록 쿼리 분석기를 구성하면 열 제목을 얻을 수 있습니다. 사용해보기 – Rad

1

첫 번째 30 개의 행은 관련 행이 아닌 경우 쓸모가 없습니다. 테스트 데이터로 사용하지 않을 경우 (고객 테이블의 고객 ID가 주문 테이블의 처음 30 개 행에 포함될 수 없다면) 스키마를 제공하지 않는 이유는 무엇입니까?

개발 목적으로 사용할 실제 데이터를 누군가에게 제공하는 것에주의하십시오.

+0

아, 보통 그렇습니다.하지만이 경우 컨설턴트는 다른 회사이지만 동일한 (대규모) 조직의 일부이므로 보안 문제가 발생하지 않습니다. 또한 직접적인 요청이 정상적인 판단을 무시하는 정치적 상황 중 하나입니다. – Cruachan

관련 문제