使用SQL语句如何将txt数据导入表中

q85958341 2009-09-15 04:40:36

CREATE TABLE [dbo].[temp](
[cardid] [char](5) COLLATE Chinese_PRC_CI_AS NOT NULL,
[consume] [decimal](10, 2) NOT NULL,
[spare] [decimal](10, 2) NOT NULL,
[consumeorder] [int] NOT NULL,
[curtime] [datetime] NOT NULL,
[stationno] [int] NOT NULL,
[computer_id] [int] ,
[manage_id] [int] ,
[manage_name] [varchar](50) COLLATE Chinese_PRC_CI_AS,
CONSTRAINT [pk_temp] PRIMARY KEY NONCLUSTERED
(
[cardid] ASC,
[consumeorder] ASC,
[curtime] ASC
) ON [PRIMARY]
) ON [PRIMARY]

GO


数据整理如下:

40424,12.40,78.50,25,2009-09-10 10:00:00,4
40503,5.40,61.50,23,2009-09-10 10:00:00,4
39762,12.40,67.80,58,2009-09-10 10:00:00,4
40505,19.60,170.10,27,2009-09-10 10:00:00,4
40505,.30,169.80,28,2009-09-10 10:00:00,4
40634,11.60,68.40,2,2009-09-10 10:00:00,4
40640,29.70,132.50,3,2009-09-10 10:00:00,4
40373,3.60,103.30,42,2009-09-10 10:00:00,4
40424,.50,78.00,26,2009-09-10 10:00:00,4
40486,14.00,65.60,16,2009-09-10 10:00:00,4
40638,26.00,7.30,5,2009-09-10 11:00:00,4
40638,.50,6.80,6,2009-09-10 11:00:00,4
40611,28.40,123.80,5,2009-09-10 11:00:00,4
40621,.60,56.70,4,2009-09-10 11:00:00,4
40430,18.00,55.30,14,2009-09-10 11:00:00,4
40373,.90,102.40,43,2009-09-10 11:00:00,4
40325,13.00,104.20,36,2009-09-10 11:00:00,4
40634,.30,68.10,3,2009-09-10 11:00:00,4
40538,12.40,56.90,18,2009-09-10 11:00:00,4
39706,.60,82.40,85,2009-09-10 11:00:00,4
40640,.50,132.00,4,2009-09-10 11:00:00,4
40468,17.80,3.10,16,2009-09-10 11:00:00,4
40485,6.00,57.80,22,2009-09-10 11:00:00,4
40637,8.40,62.20,3,2009-09-10 11:00:00,4
40644,4.50,25.50,2,2009-09-10 11:00:00,4
40520,1.00,13.80,12,2009-09-10 11:00:00,4
40527,12.40,74.30,14,2009-09-10 11:00:00,4
40515,9.00,20.50,14,2009-09-10 11:00:00,4
40030,.60,59.20,70,2009-09-10 11:00:00,4
40611,.50,123.30,6,2009-09-10 11:00:00,4
40122,8.60,27.20,65,2009-09-10 11:00:00,4



我已经通过企业管理器导入了,
我想知道使用SQL语句如何实现导入,
...全文
521 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzhicong 2010-03-31
  • 打赏
  • 举报
回复
niu
ADVANTECH_CYZ 2009-09-15
  • 打赏
  • 举报
回复
学习
devilidea 2009-09-15
  • 打赏
  • 举报
回复
虫洞 2009-09-15
  • 打赏
  • 举报
回复
通过建立连接服务器查询txt文本文件
(1)在E盘下创建文件demo.txt
(2)创建连接文本文件的服务器
/*使用SP_ADDLINKEDSERVER系统存储过程*/
EXEC SP_ADDLINKEDSERVER txtsrv,
'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'E:\',
NULL,
'Text'
GO
/*查询获得txt链接服务器上所有可用表的列表*/
EXEC SP_TABLES_EX txtsrv
GO
(3)查询
SELECt * FROM txtsrv...[demo#txt]
GO
黄_瓜 2009-09-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 happyandsad 的回复:]
上面的SQL语句时,必须使用制表符作为字段的分隔符
否则会报错:在 BCP 数据文件中遇到的意外的 EOF
[/Quote]
加一个制表符
-t ","
小宏 2009-09-15
  • 打赏
  • 举报
回复
上面的SQL语句时,必须使用制表符作为字段的分隔符
否则会报错:在 BCP 数据文件中遇到的意外的 EOF
小宏 2009-09-15
  • 打赏
  • 举报
回复

EXEC master..xp_cmdshell 'bcp DB_news..dbo.A in d:\sql0915.txt -c -s. -U"sa" -P"meichis1!"'

我参考小爱的方法来操作
把txt的文件导入的数据库DB_news中的表A中
但是提示“处理命令行时出错。”
这是啥原因引起的啊。。。。
各位大哥给看看。
zhangle861010 2009-09-15
  • 打赏
  • 举报
回复

create table #
(
[cardid] [char](5),
[consume] [decimal](10, 2),
[spare] [decimal](10, 2),
[consumeorder] [int],
[curtime] [datetime],
[stationno] [int]
)

BULK Insert #
FROM 'd:\a.txt'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)


select * from #



CREATE TABLE [dbo].[temp](
[cardid] [char](5) COLLATE Chinese_PRC_CI_AS NOT NULL,
[consume] [decimal](10, 2) NOT NULL,
[spare] [decimal](10, 2) NOT NULL,
[consumeorder] [int] NOT NULL,
[curtime] [datetime] NOT NULL,
[stationno] [int] NOT NULL,
[computer_id] [int] ,
[manage_id] [int] ,
[manage_name] [varchar](50) COLLATE Chinese_PRC_CI_AS,
CONSTRAINT [pk_temp] PRIMARY KEY NONCLUSTERED
(
[cardid] ASC,
[consumeorder] ASC,
[curtime] ASC
) ON [PRIMARY]
) ON [PRIMARY]


insert into [temp](cardid,consume,spare,consumeorder,curtime,stationno)
select * from #

select * from [temp]
drop table #
soft_wsx 2009-09-15
  • 打赏
  • 举报
回复

EXEC master..xp_cmdshell 'bcp master.dbo.tb out --master.dbo.tb为表名,out参数为输出
d:\GSPCOMPONENTFACTORY.txt -f -c -U"sa" -P"123456"' --d:\...输出文件路径及文件名

/*
1
2009-04-01 00:00:00.000 2009-09-10 00:00:00.000 2
2008-07-01 00:00:00.000 2008-11-10 00:00:00.000 /
*/
文件内容
soft_wsx 2009-09-15
  • 打赏
  • 举报
回复

EXEC master..xp_cmdshell 'bcp master.dbo.tb out d:\GSPCOMPONENTFACTORY.txt -f -c -U"sa" -P"123456"'

/*
1
2009-04-01 00:00:00.000 2009-09-10 00:00:00.000 2
2008-07-01 00:00:00.000 2008-11-10 00:00:00.000 /
*/
文件内容
黄_瓜 2009-09-15
  • 打赏
  • 举报
回复
/** 导入文本文件
  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'
  )
liaosunny 2009-09-15
  • 打赏
  • 举报
回复
以前写过的,看对你有没有用:
exec master..xp_cmdshell 'bcp pubs..test in C:\Test_Log.txt -c -F2 -t"|" -S"dextrys-sunny\sunny" -U"sa" -P""',no_output
soft_wsx 2009-09-15
  • 打赏
  • 举报
回复
用BCP!
小宏 2009-09-15
  • 打赏
  • 举报
回复
关注中。。。
liaosunny 2009-09-15
  • 打赏
  • 举报
回复
支持楼上,顺便赚积分
SQL77 2009-09-15
  • 打赏
  • 举报
回复
BULK INSERT
BCP

34,590

社区成员

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

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