2010-08-19 3 views
0

Можете ли вы мне помочь с синтаксисом для массового импорта эти данные:Массовый импорт в таблице сервера SQL

startIpNum,endIpNum,country,region,city,postalCode,latitude,longitude,dmaCode,areaCode 
1.0.0.0,1.7.255.255,"AU","","","",-27.0000,133.0000,, 
1.9.0.0,1.9.255.255,"MY","","","",2.5000,112.5000,, 
1.10.10.0,1.10.10.255,"AU","","","",-27.0000,133.0000,, 
1.11.0.0,1.11.255.255,"KR","","","",37.0000,127.5000,, 
1.12.0.0,1.15.255.255,"CN","","","",35.0000,105.0000,, 
1.16.0.0,1.19.255.255,"KR","","","",37.0000,127.5000,, 
1.21.0.0,1.21.255.255,"JP","","","",36.0000,138.0000,, 
1.22.0.0,1.23.255.255,"IN","","","",20.0000,77.0000,, 
1.24.0.0,1.31.255.255,"CN","","","",35.0000,105.0000,, 
1.33.0.0,1.33.255.255,"JP","","","",36.0000,138.0000,, 

Я использую это:

set quoted_identifier OFF 
drop table #y 
drop table #x 
DECLARE @servername varchar(128), 
@DatabaseName varchar(128), @filepath varchar(500), @pattern varchar(100), 
@TableName varchar(128),@query varchar(1000),@max1 int,@count1 int,@filename varchar(100),@fieldTerminator VARCHAR(100),@RowTerminator VARCHAR(100) 

SELECT @servername ='SQL', 
@DatabaseName ='Test', 
@filepath ='C:\test', 
    @pattern ='*.*', 
@TableName ='WeeklyImport' 
,@fieldTerminator='''","''' 
,@RowTerminator='''"\n"''' 
set @count1 =0 
create table #x (name varchar(200)) 
set @query ='master.dbo.xp_cmdshell "dir '[email protected][email protected] +' /b"' 
insert #x exec (@query) 
delete from #x where name is NULL 
select identity(int,1,1) as ID, name into #y from #x 
drop table #x 
set @max1 = (select max(ID) from #y) 
--print @max1 
--print @count1 
While @count1 <= @max1 
begin 
set @[email protected]+1 
set @filename = (select name from #y where [id] = @count1) 
set @Query ='BULK INSERT '+ @Tablename + ' FROM "'+ @[email protected]+'" 
       WITH (FIELDTERMINATOR = ' [email protected] + ',ROWTERMINATOR = ' + @rowterminator + ')' 
print @query 
exec (@query) 
end 

drop table #y 
+0

Не могли бы вы добавить описание и/или комментарии к вашему сценарию, чтобы у нас было некоторое представление о том, что/почему вы делаете. Также укажите, какая часть не работает. –

ответ

0

У Вас есть доступ к SQL Import/Экспорт в SQL Server?

alt text

Для меня это в "C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTSWizard.exe". Там в других SO страниц на этом, в том числе Questions about exporting and importing flatfiles (txt, csv) in SQL Server 2005

+0

Мне нужно будет сделать это, используя процесс BulkImport. Я знаю, что с SSIS будет легко, но, к сожалению, я не могу использовать его для этого проекта. – sharadov

0

Я попытался его следующий формат файла ...

alt text

... против первых 3 столбцов файла CSV:

alt text

запрос идет следующим образом:

alt text

Теперь вам нужно добавить только все остальные столбцы и указать их формат в файле формата. Вы можете использовать функцию REPLACE, если вам необходимо изменить некоторые значения перед их вставкой.

+0

я был в состоянии получить их в очень хорошо использовать это: BULK INSERT mnIPBlocker.dbo.GeoIPCity_stage FROM 'D: \ Test \ Sample_Geo.csv' С (FIELDTERMINATOR = '', ROWTERMINATOR = '\ п') Просто нужно знать, как я могу избавиться от двойных кавычек по всей стране, региону, городу, почтовым кодам – sharadov

+0

Извините, я думал, что вы не работали над этой частью. Я предполагаю, что выполнение запроса обновления на импортированные данные для удаления двойных кавычек не является вариантом, не так ли? – jdecuyper

+0

Вы уже пытались создать файл формата для описания вставленных данных? http://msdn.microsoft.com/en-us/library/ms178129.aspx – jdecuyper

Смежные вопросы