如何向sql中导入文本文件

leitnt 2010-04-20 04:17:11
文件的内容大致如下:
月 日 交易码 凭证号 摘 要 柜员号 借方发生额 贷方发生额 余 额
03/01 6300 EB0029167 TRS EB002 214,758.18 435,093.15
03/02 6300 EB0020462 TRS EB002 19,875.00 415,218.15
03/02 6300 EB0015356 TRS EB001 10.00 415,208.15
03/02 6300 EB0015357 TRS EB001 10.00 415,198.15
03/02 6300 EB0065289 TRS EB006 49,995.00 365,203.15
03/02 6300 EB0065292 TRS EB006 40.00 365,163.15
03/02 6300 EB0060595 TRS EB006 10.00 365,153.15

怎样导入数据库中?
...全文
187 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
envykok 2010-04-21
  • 打赏
  • 举报
回复
放到EXCEL,然后就涅贴进去哈(小数据量)
rfq 2010-04-21
  • 打赏
  • 举报
回复
BULK INSERT Northwind.dbo.[Order Details]
FROM 'f:\orders\lineitem.tbl'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '|\n'
)
效率最高
leitnt 2010-04-20
  • 打赏
  • 举报
回复
大家注意看一下,最终需要8列(月日是一列),其中每一行借方或贷方必然是空格,只是发帖时被压缩掉了
chuifengde 2010-04-20
  • 打赏
  • 举报
回复
用空格作为分隔符作好schema.ini文件 ,然后用下列语句
select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=d:\;','select * from [文件.txt]')
leitnt 2010-04-20
  • 打赏
  • 举报
回复
发帖后看不出格式了。应该是有借方数据的,没有贷方数据,贷方所在的位置是靠空格挤开的;反之有贷方数据的,没有借方数据,借方所在的位置也是靠空格挤开的。借、贷是两列,但是发帖后看不出来了,不知说清了吗。
dawugui 2010-04-20
  • 打赏
  • 举报
回复
/** 导入文本文件 
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'
)
Mr_Nice 2010-04-20
  • 打赏
  • 举报
回复
貌似数据不多。
直接运行即可

if object_id('[TB]') is not null drop table [TB]
create table [TB]([月] varchar(5),[日] int,[交易码] varchar(9),[凭证号] varchar(3),[摘] varchar(5),[要] varchar(10),[柜员号] varchar(10),[借方发生额] sql_variant,[贷方发生额] sql_variant,[余] sql_variant,[额] sql_variant)
insert [TB]
select '03/01',6300,'EB0029167','TRS','EB002','214,758.18','435,093.15',null,null,null,null union all
select '03/02',6300,'EB0020462','TRS','EB002','19,875.00','415,218.15',null,null,null,null union all
select '03/02',6300,'EB0015356','TRS','EB001','10.00','415,208.15',null,null,null,null union all
select '03/02',6300,'EB0015357','TRS','EB001','10.00','415,198.15',null,null,null,null union all
select '03/02',6300,'EB0065289','TRS','EB006','49,995.00','365,203.15',null,null,null,null union all
select '03/02',6300,'EB0065292','TRS','EB006','40.00','365,163.15',null,null,null,null union all
select '03/02',6300,'EB0060595','TRS','EB006','10.00','365,153.15',null,null,null,null

select * from [TB]

--小F-- 2010-04-20
  • 打赏
  • 举报
回复
/** 导入文本文件 */
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'
)
--小F-- 2010-04-20
  • 打赏
  • 举报
回复
将SQL SERVER中查询到的数据导成一个Excel文件
-- ======================================================
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码

EXEC master..xp_cmdshell 'bcp axzq.dbo.Staff out d:staff.xls -c -q -S"." -U"sa" -P"gazx"'

说明:还可以导出文本文件等多种格式
实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'

EXEC master..xp_cmdshell 'bcp "select name from axzq..staff order by name" queryout d:staffName.xls -c -q -S"." -U"sa" -P"gazx"'

在VB6中应用ADO导出EXCEL文件代码:
Dim cn As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"
------------------------------------------------------------------------------------------------
Mr_Nice 2010-04-20
  • 打赏
  • 举报
回复
/** 导入文本文件 
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'
)


参考!
--小F-- 2010-04-20
  • 打赏
  • 举报
回复
BCP或者BULK INSERT

34,590

社区成员

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

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