2012-01-16 2 views
0

.sql 파일이있는 폴더가 있습니다. 쿼리 당 1 개의 파일. 모든 쿼리/sql 파일을 실행하고 csv로 저장하려고합니다.SQL Server 2008 스크립트로 폴더를 실행하는 방법

내 환경에서 사용할 수없는 Windows cli를 사용하지 않고 자동화 된 방법이 있습니까? SQL Server Management Studio가 있습니다.

답변

2

VB.NET 콘솔 응용 프로그램을 만듭니다.

.SQL로 끝나는 파일 목록을 해당 폴더에서 생성하십시오. SQL 개별로 각 파일의 내용

로드

데이터 집합은 결과를 저장하는 각각에 대한 SQL 명령 실행 명령한다. 각 데이터 집합의 각 테이블에 대해

, 당신은 데이터 테이블의 각 셀을 반복해야합니다, 새로운 .csv 파일, .csv 파일의 각 파일에 대해

를 만들고, .CSV 파일을 탈출 적절한 활용합니다.

3

BIS (Business Intelligence Development Studio)가 설치되어 있으면 SSIS를 사용하여이 작업을 수행합니다.

먼저 SQL 파일이있는 폴더를 가리키는 'Foreach 루프 컨테이너'를 만든 다음 변수를 사용하여 각 파일 이름을 검색합니다.

다음으로 플랫 파일 연결을 만들고 'Connection String'속성을 파일 위치가 들어있는 변수로 설정하십시오.

다음으로 'Execute SQL Task'구성 요소를 사용하여 'SQLSourceType'을 '파일 연결'로 설정하고 'FileConnection'을 이전 단계에서 만든 설정으로 설정하십시오.

마지막으로 데이터가 반환되는 방식에 따라 두 가지 옵션이 있습니다. 결과 집합이 작거나 행 또는 단일 열인 경우 결과를 변수에 저장하고 '데이터 흐름' 작업에서 '파생 열'구성 요소를 만들고 해당 변수의 내용을 CSV 파일로 내 보냅니다. 또는 데이터 집합이 더 큰 경우 결과를 임시 테이블에 덤프 한 다음 'OLE DB 원본'과 'OLE DB 대상'을 사용하여 전체 결과 집합을 CSV로 직접 푸시 할 수 있습니다.

이 방법은 원격 시스템이나 서버 자체에서 실행할 수있는 이점이 있으며 SQL 에이전트 작업으로 실행을 자동화 할 수 있다는 장점이 있습니다.

+0

여기에 비 회선 해답이 없다고 생각합니다. 좋은 답변 –

+0

답변 해 주셔서 감사합니다. 필자는 Business Objects의 매우 오래된 복사본을 발견하여 문제를 해결했습니다. 즉, 모든 쿼리를 한 번에 실행하고 여러 시트의 Excel 파일로 저장할 수 있습니다. 이 경우에는 csv를 더 잘 분리하십시오. – Lennart

0

스크립트 폴더의 각 파일에 대해 sqlcmd 또는 bcp 명령과 함께 'for'를 사용하십시오.