2009-07-14 2 views
5

csv 파일의 특정 필드로 업데이트해야하는 SQL Server 2005 제품 테이블이 있습니다. 두 파일 모두 csv 파일에서 products.discontined 필드를 다른 곳으로 업데이트 할 수있는 곳으로 연결할 수있는 공급 업체 부품 번호가 있습니다.tsql : CSV 파일로 db 테이블을 업데이트하는 가장 좋은 방법

제 질문은이 문제를 해결하는 가장 좋은 방법입니다.

나는 엑셀 파일에 대한 ODBC 연결을 생성하고 병합하는 방법을 알아 내 2 열을 업데이트하는 방법을 생각해 봤다. SQL Server의 임시 테이블에 전체 CSV 파일 (~ 60MB)을 가져온 다음 검색, 비교, 업데이트 할 tsql 프로 시저를 작성 하시겠습니까? 또한 일을하고 쿼리 분석기에서 오픈 소스 명령하고, 당신에게 SQL 서버 2005 가장 좋은 건 사용할 수

+1

일정한 업데이트입니까, 아니면 1 회 작업입니까? 그것은 최고의 경로를 결정하는데 도움이 될 것입니다. –

+1

CSV도 깨끗합니까? IE 인용 부호는 도주했다? –

+0

참고 : 'sqlserver'태그는 최근에 'sql-server'를 사용하여 더 이상 사용되지 않습니다. –

답변

3

경우 .. 사전에

감사를 CSV 파일에 읽고 테이블 그런 식으로 업데이트하는 절차를 작성 SQL Server Integration Services (이전의 데이터 변환 서비스 또는 DTS)입니다. 이렇게하면 어디에서나 일정에 따라 실행되거나 결정할 때마다 호출 할 수있는 패키지를 만들 수 있습니다. 그것을 호출하는 응용 프로그램과 비동기 적으로도 실행할 수 있습니다.

업데이트 :
게시하기 전에 패키지를 완벽하게 실행하고 디버깅 할 수 있습니다. 이것은 당신이 등 잘못된 형식의 문서와 같은 일들을 설명 할 수

당신은 당신이 대량 삽입을 할 수있는 당신에게 SSIS 사용할 수 (참조 : http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/)이없는 경우

가 윤곽과 일치하는 테이블을 만듭니다 당신의 CSV의 다음 다음 사용 가져 오기 : 그것은 당신의 DB의 테이블에서와 같이

BULK 
INSERT MyTable 
FROM ‘c:\mycsv.csv’ 
WITH 
(
    FIELDTERMINATOR = ‘,’, 
    ROWTERMINATOR = ‘\n’ 
) 

거기에서 당신은 TSQL을 사용하여 변환 할 수 있습니다.

임시 업데이트 인 경우 임시 테이블을 만들어 작업을 수행하고 저장 프로 시저를 작업으로 실행할 수 있습니다.

+0

현재이 기능을 사용할 수 없습니다. – phill

+0

에 액세스 할 수 없기 때문에 SSIS –

+0

에 액세스 할 수 없으므로 다음 파일을 참조하십시오. http://support.microsoft.com/kb/321686 파일 이름이 excel로 시작한다고 언급 한 이후 –

관련 문제