2017-02-16 1 views
1

이것은 사소한 질문처럼 보입니다. 그리고 그건. 하지만 지금은 하루 이상 봤어, 아직 대답 :대량 삽입 - null 문자열이 아닌 빈 문자열을 삽입하도록 SQLServer에 지시하는 방법

데이터 형식이 varchar(100) 인 열에 대해 빈 문자열을 삽입하고자하는 위치에 대량 삽입을 수행하고 싶습니다. 아니 Null하지만 비어 있습니다. 테이블의 예를 들면 다음과 같습니다

create table temp(columnName varchar(100)) 

나는 값으로 빈 문자열을 삽입 할 :

BULK INSERT sandbox..temp FROM 
'file.txt' WITH (FIELDTERMINATOR = '|#', ROWTERMINATOR = '|:'); 

그리고 파일 내용이 row1|:row2|:|:|: 될 것이다. 그래서 그것은 마지막 두 행이 빈 문자열로 의도 된 4 개의 행을 포함합니다. 하지만 그들은 NULL으로 삽입됩니다. 중복이 질문을 표시로


이 질문은 동일하지 않습니다 : 또한 NULL과 빈 문자열 : 열, 나는 모두를 삽입 할 수있는 능력을 가지고 싶습니다. 대답은 제공되지만 둘 중 하나만 수행됩니다.

+0

추신 : 나는 기본 제약 조건과 같은 해킹 거리가있다. 관심이 없다. – Jatin

+0

빈 문자열 ... 왜? – jarlh

+1

많은 경우 빈 문자열은 합법적 인 값이기도합니다. 답변 : 큰 응용 프로그램에서는 현재 대량 및 빈 문자열을 사용하지 않았습니다. 우리는 대량으로 이동할 계획입니다. 믿을 수 없을 정도로 많은 것을 깨뜨리기 때문에 서버 코드에서 빈 문자열을 명시 적으로 처리 할 수 ​​없습니다. – Jatin

답변

2

빈 문자열을 명시 적으로 삽입하는 대신 테이블 열의 기본값을 빈 문자열로 지정하고 일괄 삽입에서 해당 열의 값을 전달하지 않는 것이 좋습니다. 뭔가 같은 것

create table temp(columnName varchar(100) default '') 
+2

OP는이 접근 방식을 해킹으로 간주하고 댓글에서 그렇게 말했습니다. –

+0

나는 DV가 아니었지만 여전히 이것이 가능한 접근이라고 생각한다. –

+0

@ rory.ap, 괜찮아요. OP에 대해 생각하지 않았습니다. 좋은 접근 방법입니다. OP가 해킹이라고 생각한다면 그것은 그의 개인 의견 일 것입니다. – Rahul

관련 문제