2014-01-10 4 views
1
내가 지금처럼 내 데이터를 내보낼 SQLCMD를 사용하고

- 실제로SQL 서버 SQLCMD 수출/대량 삽입 문제

value1 | value2 | datetime 
value2 | NULL | NULL 
value3 | value3 | NULL 

널 (NULL) - 그것은과 같이 NULL가 포함 된 형식을 반환

-S Server -dDatabase -E -b -r1 -s "|" -i "D:\Scripts\export.sql" -o \\server\export-YYYYMMDD.csv -h-1 

그 것처럼 CSV에 나타납니다. 없는.

일괄 삽입을 할 수없는 것 같습니다. 이러한 NULL 값은 계속 실패합니다. 형식 파일을 만들려고했습니다. 그 값을 NULL로 삽입하는 것이 NULL인지 확인하는 방법을 모르겠습니다.

USE database; 
GO 
DELETE table; 
GO 
BULK INSERT table 
    FROM '\\server\export-YYYYMMDD.csv' 
    WITH (FORMATFILE = '\\server\format.xml'); 
GO 
SELECT * FROM table; 
GO 

파일을 변경하고 NULL을 ''로 변경하면 삽입이 제대로 작동하지만 자동화를 위해이를 수행 할 수 없습니다.

이러한 데이터베이스는 모두 (별도의 방화벽) 연결되어 있지 않으므로 내보내기/가져 오기가 필요합니다.

다른 방식으로 접근해야합니까, 아니면 제가 빠진 것이 있습니까?

답변

2

나는 그것을 잘못 접근하고있다.

내가 찾은 날과 같이 대신 BCP를 사용하여 내 수출을 변경할 수 다음 documentation - 내 대량 삽입이 제대로 작동 할 수 공백으로 나에게 NULL로 데이터를했다

bcp "select * from dbo.table" queryout test.csv -t, -c -S servername\instance -d Database -T 

.