2010-08-19 1 views
0

Pouvez-vous s'il vous plaît me aider avec la syntaxe à l'importation en bloc ces données:l'importation en bloc dans le serveur SQL Tableau

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,, 

J'utilise ceci:

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

Pourriez-vous ajouter une description et/ou des commentaires à votre script afin que nous ayons une idée de ce que/pourquoi vous faites. En outre, souligner ce qui ne fonctionne pas. –

Répondre

0

Avez-vous accès à l'importation SQL/Outil d'exportation dans SQL Server?

alt text

Pour moi, c'est à "C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTSWizard.exe". Il y a d'autres de pages à ce sujet, y compris Questions about exporting and importing flatfiles (txt, csv) in SQL Server 2005

+0

Je vais devoir le faire en utilisant le processus BulkImport. Je sais que ce sera facile avec SSIS, mais malheureusement je ne peux pas l'utiliser pour ce projet. – sharadov

0

Je l'ai essayé le fichier format suivant ...

alt text

... contre les 3 premières colonnes de votre fichier csv:

alt text

La requête va comme suit:

alt text

Vous n'avez plus qu'à ajouter toutes les autres colonnes et spécifier leur format dans le fichier de format. Vous pouvez utiliser la fonction REPLACE si vous devez modifier certaines valeurs avant de les insérer.

+0

j'ai pu les obtenir en utilisant simplement bien ceci: VRAC mnIPBlocker.dbo.GeoIPCity_stage INSERT DE 'D: \ Test \ Sample_Geo.csv' AVEC (FIELDTERMINATOR = '', ROWTERMINATOR = '\ n') Juste besoin de savoir comment je peux me débarrasser des guillemets dans le pays, la région, la ville, les codes postaux col – sharadov

+0

Désolé, je pensais que vous n'aviez pas cette partie de travail. Je suppose que l'exécution d'une requête de mise à jour sur les données importées pour supprimer les guillemets n'est pas une option, non? – jdecuyper

+0

Avez-vous déjà essayé de créer un fichier de format pour décrire les données insérées? http://msdn.microsoft.com/en-us/library/ms178129.aspx – jdecuyper