여기에 대량으로 내 SQL은 CSV는 SQL 서버 2008에 파일을로드하지만, 그것의 반환의 이 (맨 윗줄은 무시됩니다)대량 삽입이 SQL 서버에서 작동하지 않습니다 2008
24544,"1970-01-01 10:00:00","8056060 kWh"
24544,"2012-12-04 00:15:00",0.176
24544,"2012-12-04 00:30:00",0.163
24544,"2012-12-04 00:45:00",0.016
여기에 대량으로 내 SQL은 CSV는 SQL 서버 2008에 파일을로드하지만, 그것의 반환의 이 (맨 윗줄은 무시됩니다)대량 삽입이 SQL 서버에서 작동하지 않습니다 2008
24544,"1970-01-01 10:00:00","8056060 kWh"
24544,"2012-12-04 00:15:00",0.176
24544,"2012-12-04 00:30:00",0.163
24544,"2012-12-04 00:45:00",0.016
대량 삽입은 데이터에서 따옴표를 제거하지 않으며 파일을 변경해야합니다 가져 오거나 모든 열이 문자 필드 인 테이블로 가져오고 쿼리에서 따옴표를 제거하고 데이터 유형을 변환합니다.
http://msdn.microsoft.com/en-us/library/ms188609.aspx
그것은 상태 : 난 그냥 다음 MSDN 문서를 발견했습니다
쉼표로 구분 된 값 (CSV) 파일이 SQL 서버 대량 가져 오기 작업을 지원하지 않습니다.
그런 다음 계속 진행될 상황에 대한 몇 가지 예를 계속합니다.
이 질문은 다소 오래되었지만 문제를 검색했을 때 나타 났으므로 내 솔루션을 제공 할 것이라고 생각했습니다.
필자의 경우 올바른 테이블에 삽입하지 않는 것이 실수 였기 때문에 삽입하려는 테이블을 확인해야합니다. 그래도 무슨 일이 벌어 졌는지 알아 내려고 할 때 벌크 삽입 프로세스에서 올바른 방향으로 인도 할 수있는 오류 파일을 만들 수 있음을 발견했습니다. 이렇게하려면 ERRORFILE ='E:\Error.txt'
과 같은 것을 사용할 수 있습니다. 이 오류는 Error.txt라는 파일에 수신되는 오류를 출력해야합니다. 아래에 전체 예제를 제공했습니다.
BEGIN TRANSACTION
BEGIN TRY
BULK INSERT [Table Name]
FROM 'E:\FileName.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', ERRORFILE ='E:\Error.txt')
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
트랜잭션에 대량 삽입 프로세스를 래핑했습니다. 이것은 대량 삽입 중에 문제가 발생하면 모든 것을 롤백 할 것이므로 부분적으로 데이터 가져 오기를 얻지 못할 것입니다.
그리고 삽입하려는 'EnergyData'의 테이블 구조는 무엇입니까? –