CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

如何自动导入文本数据?

楼主bluesky137(蓝色的天空)2002-05-28 10:20:55 在 MS-SQL Server / 基础类 提问

有以逗号分隔的文本文件数据,通过数据库导入向导可以一步步导入到数据库中。现在能不能在程序中比如vc调用相关的过程或脚本完成这个导入过程? 问题点数:20、回复次数:11Top

1 楼ghxghx()回复于 2002-05-28 10:41:38 得分 2

调用这个可执行文件:  
  dtsrun    
  用sql来写是:  
  use   master  
  xp_cmdshell   'dtsrun.exe',   NO_OUTPUT  
   
  Top

2 楼bluesky137(蓝色的天空)回复于 2002-05-28 10:44:49 得分 0

to   ghxghx()    
  能不能具体一点啊,比如要将data1.txt   数据导入到数据库mydb的data表中,怎么写呢?Top

3 楼leimin(黄山光明顶)回复于 2002-05-28 10:51:36 得分 8

导入文件  
  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""'  
   
   
  给分吧!Top

4 楼ghxghx()回复于 2002-05-28 10:57:50 得分 0

先建好dts包  
  再运行dtsrun  
  dtsrun的用法,它本身带帮助  
  直接运行   dtsrun   就是他的帮助Top

5 楼bluesky137(蓝色的天空)回复于 2002-05-28 11:50:18 得分 0

to     leimin(leimin)    
  别急嘛,我很守信用的。  
  如果要调整文本文件的字段和表的字段对应关系,而不是一一对应的关系,该怎么弄呢?Top

6 楼coolbily(Gavin Zhang)回复于 2002-05-28 12:22:23 得分 10

建议用寸储过程  
  CREATE   PROCEDURE   aaa  
   
  AS  
  BULK   INSERT   数据库名..表名   FROM   '文件名'  
  WITH   (  
        DATAFILETYPE   =   'char',         //字符行  
        FIELDTERMINATOR   =   ',',         //以逗号作为隔离符号  
        ROWTERMINATOR   =   '\n'           //换行符  
  )  
  GOTop

7 楼coolbily(Gavin Zhang)回复于 2002-05-28 12:24:09 得分 0

我已经调试过了,直接调用寸储过程就可以了  
  文件格式  
  1111,11111,11111,11111  
  2222,33333,33333,33333Top

8 楼bluesky137(蓝色的天空)回复于 2002-05-28 12:27:24 得分 0

to   coolbily(为什么PING不到我自己?)    
  等一下,我试试哦Top

9 楼bluesky137(蓝色的天空)回复于 2002-05-29 11:04:34 得分 0

to   coolbily(为什么PING不到我自己?)  
  怎么把文本文件参数传入到这个存储过程中,字符变量好像不能直接用在from   后面啊?另外,如果这个文本文件只有几列而不是全部需要导入,应该怎么设置呢?Top

10 楼coolbily(Gavin Zhang)回复于 2002-05-29 14:03:58 得分 0

是的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)Top

11 楼coolbily(Gavin Zhang)回复于 2002-05-29 14:06:27 得分 0

"如果这个文本文件只有几列而不是全部需要导入,应该怎么设置呢?"  
  这个我现在也没研究过,你看看bulk   insert的帮助手册后的参数设置Top

12 楼bluesky137(蓝色的天空)回复于 2002-05-29 14:12:06 得分 0

ok!   thanks!Top

相关问题

  • 文本导入数据库
  • 将文本数据导入SQLSERVER
  • 文本文件导入数据库
  • 文本文件导入数据表
  • 文本文件导入数据库
  • 怎么将文本导入数据库
  • 文本导入数据库的问题
  • ORACLE数据库在导入文本数据时,能不能使ID号自动增加?在线等急用
  • 自动导入数据
  • 斑竹! 如何把文本数据导入到数据库中?

关键词

  • 数据库
  • 数据
  • 文件
  • sql
  • 导入
  • 文本文件
  • dtsrun
  • 调用
  • 参数
  • cmdshell

得分解答快速导航

  • 帖主:bluesky137
  • ghxghx
  • leimin
  • coolbily

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo