如何用sql语句将一个文件夹下的所有txt文件导入到数据库中急!在线等

如何用sql语句将一个文件夹下的所有txt文件导入到数据库中急!在线等,第1张

使用场景:

比如将

C:\Test\

目录下的所有

txt文件内容

导入到

Table_1

--定义临时表,用于存放获取的文件名称

CREATE

TABLE

#files

(name

varchar(200)

NULL,

sql

varchar(7000)

NULL)

--获取文件名称,存放在#files

INSERT

#files(name)

exec

master..xp_cmdshell

'dir

c:\test

/b'

--删除不要的文件名称

DELETE

#files

WHERE

coalesce(name,

'')

NOT

LIKE

'Code%'

--插入需要

导入文件内容

命令SQL,需要修改

Table_1(改为导入的Table)和文件路径

UPDATE

#files

SET

sql

=

'BULK

INSERT

Table_1

FROM

'''

+

'C:\Test\'+name

+

'''

WITH

('

+

'DATAFILETYPE

=

''char'',

FIELDTERMINATOR

=

''\t'',

'

+

'ROWTERMINATOR

=

''\n'')'

--开始执行导入

DECLARE

@sql

varchar(8000)

DECLARE

cur

CURSOR

STATIC

LOCAL

FOR

SELECT

sql

FROM

#files

OPEN

cur

WHILE

1

=

1

BEGIN

FETCH

cur

INTO

@sql

IF

@@fetch_status

<>

0

BREAK

EXEC(@sql)

END

DEALLOCATE

cur

主要分为读取文件夹下所有文件和导入文件内容两部分

--读取文件夹下所有文件

declare

@files

table

(ID

int

IDENTITY,

FileName

varchar(100))

insert

into

@files

execute

xp_cmdshell

'dir

c:\test

/b'

select

'c:\'+

[FileName]

AS

FILEPATH

INTO

#temp

from

@files

SELECT

*

FROM

#temp

--导入文件内容

BULK

INSERT

dbo.Table_1

FROM

#temp

WITH

(

ROWTERMINATOR

='\n'

)

还需要开启

/*****

Step

1

开启

xp_cmdshell

Use

Master

GO

EXEC

master.dbo.sp_configure

'show

advanced

options',

1

RECONFIGURE

WITH

OVERRIDE

GO

EXEC

master.dbo.sp_configure

'xp_cmdshell',

1

RECONFIGURE

WITH

OVERRIDE

GO

*******/

参考:

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/47c8edc1-8cad-4a24-a09a-3fc0c943325c/bulk-insert-multiple-files-tsql

txt同样是可以导入到Sql

Server2000数据库的

但是

前提是你的txt文件内容是有特定的格式

比如

你要的信息字段内容必须用特定的符号隔开(默认是逗号)

a,b,c

e,f,g

如果这样的要求满足的话

然后你

打开sql

server2000

选择数据库——>导入数据

显示导入数据向导-》下一步

在选择数据源的时候

"数据源"选择“文本文件”->下一步

选择行分隔符->下一步

选择列分隔符。。。。。下一步。。。。完成


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10047460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存