当前位置:高校自动化网 >> sql >> 浏览文章

SQL批量导入csv文件

文章来源:本站原创 作者:佚名


该文章讲述了SQL批量导入csv文件.

有一文件[D:\msql\bulk.txt]内容如下.以空格分隔.
01 gwf dongguang CSDN.net 02 sxl dongguangeric CSDN.net
--建表:
if object_id('tbulk')is not null drop table tbulk create table tbulk(id int,name varchar(100),addr varchar(100),tag varchar(10))
Go
--批次处理
bulk insert tbulk from'D:\msql\bulk.txt'
with(
fieldterminator=''--列分隔符
--rowterminator='\n'--行分隔符
)
--结果
select*from tbulk
不要使用INSERT导入大批的数据
请不要这样做,除非那是必须的。使用UTS或者BCP,这样你可以一举而兼得灵活性和速度。
使用T-SQL导入多个文件数据到SQL Server中
在我们的工作中,经常需要连续输入多个文件的数据到SQL Server的表中,有时需要从相同或者不同的目录中,同时将文件中的数据倒入。在这篇文章中,我们将讨论如何同时把一个目录中的文件的数据倒入到SQL Server中。试验环境
我们先创建整个试验的环境。创建文件目录"C:\MyImport",和三个文件a.csv、b.csv和c.csv,文件内容如下。同时,在SQL Server中创建一个表用来存放导入的数据。
C:\MyImport\a.csv 1,MAK,A 9411792711,3400.25 2,Claire,A 9411452711,24000.33 3,Sam,A 5611792711,1200.34 C:\MyImport\b.csv 11,Rubon,9671792711,400.14 22,Mike,9418952711,4000.56 39,Hsu,75611792511,1230.00 C:\MyImport\c.csv 69,Lucy,8411992710,305.11 45,Grace,3413452713,246.52 33,Saint,5461795716,1278.70 Create Database Bank Go Use Bank go Create table Account
(
[ID]int,Name Varchar(100),
AccountNo varchar(100),Balance money
)
Go Create table logtable
(
id int identity(1,1),
Query varchar(1000),
Importeddate datetime default getdate()
)
方法1:XP_CMDSHELL和BULK INSERT
这个方法使用xp_cmdshell和Bulk Insert的SQL命令把一个目录中的文件倒入到SQL Server的表中。
创建存储过程
在数据库中产生这个存储过程,这个存储过程有三个参数:文件路径,文件扩展名和数据库的表名。
Create procedureusp_ImportMultipleFiles@filepath varchar(500),
@pattern varchar(100),@TableName varchar(128)
as setquoted_identifieroff declare
@query varchar(1000)
declare
@max1 int declare
@count1 int Declare
@filename varchar(100)
set
@count1
=0 create table#x(namevarchar(200))
set
@query
='master.dbo.xp_cmdshell"dir' @filepath @pattern
'/b"'
insert#xexec(@query)
delete from#xwherenameis NULL select identity(int,1,1)asID,nameinto#yfrom#x drop table#x set
@max1
=(select max(ID)from#y)
--print@max1
--print@count1 While
@count1
=
@max1 begin set
@count1=@count1 1 set
@filename
=(selectnamefrom#ywhere

相关文章:
上一篇:Linux chmod 命令
下一篇:DB2 SQL命令数据操作语言
最近更新