Estou tentando usar a inserção em massa para inserir dados de um arquivo csv em uma tabela do sql server, mas está retornando 0 linhas.
Esta é a instrução de inserção em massa que estou usando
BULK INSERT dbo.DEA_Availability from 'C:\SQLPOWERDOC\CSV\DEA_Availability.csv'
with (
FIRSTROW=2,
FIELDTERMINATOR=',',
ROWTERMINATOR='\r\n',
ERRORFILE = 'C:\SQLPOWERDOC\CSV\DEA_Availability_ERROR.log',
DATAFILETYPE='char',
keepnulls
)
A definição da tabela é:
CREATE TABLE [dbo].[DEA_AVAILABILITY](
[Server_Name] [varchar](max) NULL,
[Database_Name] [varchar](max) NULL,
[Priority] [varchar](max) NULL,
[Description] [varchar](max) NULL,
[Details] [varchar](max) NULL,
[URL] [varchar](max) NULL,
[IMPORT_DATE] [datetime2](7) NULL
) ON [PRIMARY]
GO
Este é o conteúdo do arquivo CSV
Server Name,Database Name,Priority,Description,Details,URL
HOSTNAME,,None,Cluster Node,This is a node in a cluster.,http://msdn.microsoft.com/en-us/library/ms189134(v=sql.100).aspx
Verifiquei que cada linha do arquivo CSV termina com \r\n
Para fazer isso funcionar:
Após essas alterações, os dados são importados corretamente. NOTA: Se você quiser que IMPORT_DATE apareça como NULL em vez de usar a data atual, pule a etapa 3.
Finalmente consegui voltar a este processo e fazê-lo funcionar. Eu consegui fazer funcionar fazendo o seguinte
import_date
colunaKEEPNULLS
do meu comandoGETDATE()
aoimport_date
campo, não acho que isso fosse necessário, mas fazia sentido ter e é um design melhorAcredito que o arquivo de formato era obrigatório, pois não era viável adicionar o
import_Date
campo a todos os arquivos CSV. A tabela/csv em questão era apenas uma de um grupo de 84 arquivos/tabelas que são gerados várias vezes ao dia, e não tenho controle sobre o formato em que os arquivos são gerados.