txt导入sql

huangy365 2009-08-31 09:57:57
txt文本里有大量数据,导入数据库,有多个分割符是该怎么做,详细点,最好有个例子
...全文
102 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangy365 2009-08-31
  • 打赏
  • 举报
回复
有没有高手说一下该怎么办啊
huangy365 2009-08-31
  • 打赏
  • 举报
回复
大量数据,很多表,我不能都一个一个表的替换吧
haochin 2009-08-31
  • 打赏
  • 举报
回复
我是笨人,我常的做法是弄到EXCEL后,整理一下,再导入到SQL.
zhaoweiting0609 2009-08-31
  • 打赏
  • 举报
回复

如果有规律的话,可以复制粘贴进去
或者先粘贴到Excel中再复制粘贴

[Quote=引用 2 楼 fredrickhu 的回复:]
SQL code/** 导入文本文件*/EXEC master..xp_cmdshell'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'/** 导出文本文件*/EXEC master..xp_cmdshell'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'
或EXEC master..xp_cmdshell'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'/**导出到TXT文本,用逗号分开*/exec master..xp_cmdshell'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'BULKINSERT 库名..表名FROM'c:\test.txt'WITH (
FIELDTERMINATOR=';',
ROWTERMINATOR='\n'
)
[/Quote]

这个收藏一下,供以后用


黄_瓜 2009-08-31
  • 打赏
  • 举报
回复
ctrl + H 把逗号替换成空格 然后用bcp导入
黄_瓜 2009-08-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 huangy365 的回复:]
不一样,比如我用逗号或空格做分割符,一行里如果遇到逗号和空格时都要划分
[/Quote]
huangy365 2009-08-31
  • 打赏
  • 举报
回复
不一样,比如我用逗号空格做分割符,一行里如果遇到逗号和空格时都要划分
xiequan2 2009-08-31
  • 打赏
  • 举报
回复
分隔符号不一样吗?
华夏小卒 2009-08-31
  • 打赏
  • 举报
回复

BULK INSER(大容量文本导入)

txt文件内容:

数据|数据|数据
数据|数据|数据

现在要将这导入到表中.结果是
col1 col2 col3
数据 数据 数据
数据 数据 数据


语句:

BULK INSERT 表名
FROM 'C:\name.txt'
WITH
(
FIELDTERMINATOR='|',
ROWTERMINATOR='\r\n',
DATAFILETYPE='char'
);
--小F-- 2009-08-31
  • 打赏
  • 举报
回复
/** 导入文本文件 */
EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'

/** 导出文本文件 */
EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'

EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'

/**导出到TXT文本,用逗号分开*/
exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'


BULK INSERT 库名..表名
FROM 'c:\test.txt'
WITH (
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
SQL77 2009-08-31
  • 打赏
  • 举报
回复
BULK INSERT
随行的太阳 2009-08-31
  • 打赏
  • 举报
回复
2楼的帮顶,学习学习


SQL code/** 导入文本文件 */
EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'

/** 导出文本文件 */
EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'

EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'

/**导出到TXT文本,用逗号分开*/
exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'


BULK INSERT 库名..表名
FROM 'c:\test.txt'
WITH (
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
lunzi028 2009-08-31
  • 打赏
  • 举报
回复
数据先不做替换原样导入,
新加两列,根据规律把‘cc--11’进行拆分
应该是比较简单的笨办法了
zhengduan964532 2009-08-31
  • 打赏
  • 举报
回复

BULK INSERT 库名..表名
FROM 'c:\test.txt'
WITH (
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
huangy365 2009-08-31
  • 打赏
  • 举报
回复
数据很大,我举个例子
数据:
aa,bb,cc--11,22,33
dd,ee,ff--44,55,66
要求结果:
aa bb cc 11 22 33
dd ee ff 44 55 66
因为数据量很大,表又多
所以暂时不考虑先将 “——”替换为“
soft_wsx 2009-08-31
  • 打赏
  • 举报
回复
最好给出数据

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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