如何自动导入文本数据?

csdn95566 2002-05-28 10:20:55
有以逗号分隔的文本文件数据,通过数据库导入向导可以一步步导入到数据库中。现在能不能在程序中比如vc调用相关的过程或脚本完成这个导入过程?
...全文
64 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn95566 2002-05-29
  • 打赏
  • 举报
回复
to coolbily(为什么PING不到我自己?)
怎么把文本文件参数传入到这个存储过程中,字符变量好像不能直接用在from 后面啊?另外,如果这个文本文件只有几列而不是全部需要导入,应该怎么设置呢?
csdn95566 2002-05-29
  • 打赏
  • 举报
回复
ok! thanks!
coolbily 2002-05-29
  • 打赏
  • 举报
回复
"如果这个文本文件只有几列而不是全部需要导入,应该怎么设置呢?"
这个我现在也没研究过,你看看bulk insert的帮助手册后的参数设置
coolbily 2002-05-29
  • 打赏
  • 举报
回复
是的from后不能加参数的,你的用
CREATE PROCEDURE aaa
@name1 char(100)
AS
declare @sql varchar(300)
set @sql='BULK INSERT 数据库名..表名 FROM '''+@name1+''' WITH (DATAFILETYPE =
'''+'char'+''',FIELDTERMINATOR = '''+','+''',ROWTERMINATOR = '''+'\n'+''',FIRE_TRIGGERS)'
exec(@sql)
csdn95566 2002-05-28
  • 打赏
  • 举报
回复
to coolbily(为什么PING不到我自己?)
等一下,我试试哦
coolbily 2002-05-28
  • 打赏
  • 举报
回复
我已经调试过了,直接调用寸储过程就可以了
文件格式
1111,11111,11111,11111
2222,33333,33333,33333
coolbily 2002-05-28
  • 打赏
  • 举报
回复
建议用寸储过程
CREATE PROCEDURE aaa

AS
BULK INSERT 数据库名..表名 FROM '文件名'
WITH (
DATAFILETYPE = 'char', //字符行
FIELDTERMINATOR = ',', //以逗号作为隔离符号
ROWTERMINATOR = '\n' //换行符
)
GO
csdn95566 2002-05-28
  • 打赏
  • 举报
回复
to leimin(leimin)
别急嘛,我很守信用的。
如果要调整文本文件的字段和表的字段对应关系,而不是一一对应的关系,该怎么弄呢?
ghxghx 2002-05-28
  • 打赏
  • 举报
回复
先建好dts包
再运行dtsrun
dtsrun的用法,它本身带帮助
直接运行 dtsrun 就是他的帮助
leimin 2002-05-28
  • 打赏
  • 举报
回复
导入文件
EXEC master..xp_cmdshell 'bcp test.dbo.tablename in c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
导出文件
EXEC master..xp_cmdshell 'bcp test.dbo.tablename out c:\temp1.txt -c -q -S"servername" -U"sa" -P""'


给分吧!
csdn95566 2002-05-28
  • 打赏
  • 举报
回复
to ghxghx()
能不能具体一点啊,比如要将data1.txt 数据导入到数据库mydb的data表中,怎么写呢?
ghxghx 2002-05-28
  • 打赏
  • 举报
回复
调用这个可执行文件:
dtsrun
用sql来写是:
use master
xp_cmdshell 'dtsrun.exe', NO_OUTPUT

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧