我正在使用以下代码
create TABLE #temp1(
[date] [varchar](500) NULL,
[time] [varchar](500) NULL,
[s-ip] [varchar](500) NULL,
[cs-method] [varchar](500) NULL,
[cs-uri-stem] [varchar](max) NULL,
[cs-uri-query] [varchar](max) NULL,
[s-port] [varchar](500) NULL,
[cs-username] [varchar](500) NULL,
[c-ip] [varchar](500) NULL,
[cs(User-Agent)] [varchar](2048) NULL,
[cs(Referer)] [varchar](max) NULL,
[sc-status] [varchar](max) NULL,
[sc-substatus] [varchar](500) NULL,
[sc-win32-status] [varchar](500) NULL,
[time-taken] [varchar](500) NULL
)
BULK INSERT #temp1 FROM 'C:\iislogs\u_ex150108.log'
WITH (
FIRSTROW = 5,
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n',
MAXERRORS = 10000
)
和我正在使用的文件有1521000行,但我在#temp1只获得了1305226
请帮忙 提前致谢
答案 0 :(得分:1)
感谢所有人的宝贵回答
但是经过长时间的谷歌搜索后再次出现。
我找到了一个解决方案,这是一个Microsoft sql server bug
只有在我们的系统中安装最新的sql server服务包时才能解决这个bug
当我在我的系统中安装Service Pack时,批量插入效果很好。
如需任何进一步的帮助,请从以下链接获取帮助
https://support.microsoft.com/kb/837401/EN-US
再次感谢
答案 1 :(得分:0)
将所有varchar设置为max并再次执行批量文件,请将您的日志文件粘贴到excel并查看总行是否真的是1521000?
问题通常由无效的fieldterminator和rowterminator引起。
答案 2 :(得分:0)
最近我在插入带有批量插入的行时出现问题,我添加了一个rowcount条件,直到存储过程必须运行。
select @tablerowcount = count(*) from tbl1
while @tablerowcount = 0
begin
exec sp_custombulkinsert
end