Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL não inserirá valores nulos com BULK INSERT


De acordo com:

http://msdn.microsoft.com/en-us/library/ms187887 .aspx

valores nulos podem ser inseridos tendo um campo vazio em seu arquivo.

O arquivo de exemplo era:
1,,DataField3
2,,DataField3

O método de exemplo de importação de arquivos mantendo nulos é:
USE AdventureWorks;
GO
BULK INSERT MyTestDefaultCol2
FROM 'C:\MyTestEmptyField2-c.Dat'
WITH (
    DATAFILETYPE = 'char',
    FIELDTERMINATOR = ',',
    KEEPNULLS
);
GO

Concedido, isso significa que você terá que alterar seus "NULL"s para "", e quaisquer strings vazias que você queria como string vazia seriam interpretadas como nulas, mas pode ser suficiente para você começar? Eu imagino manter suas colunas de string vazias, elas precisariam ser alteradas
field1,,field2

para
field1,"",field2

como exemplo