sqlserver导入导出txt的问题

SnowyLu 2010-03-22 06:58:08
大家好,我要在我的文本文档中的数据批量导入到SqlServer2005中,最好还可以导出!

比如:
我的文本文档test.txt中的数据:
cardId name startDate endDate
1 lily 2007-01-20 2007-02-11
2 hanmei 2008-01-21 2007-03-12
3 lilei 2009-01-22 2009-02-11
....

一共有4万多条数据


而我数据库的表是:
cardId name startDate endDate ...还有其他的字段

所以我要怎么样才能将文本文档中的数据批量导入到数据库表中,而且还要对应字段!

在线等!

谢谢!

...全文
217 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
永生天地 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 snowylu 的回复:]
需求是应用到项目中 要导入的文本是在客户端 这些方式是必须文本在 数据库服务器端才能读写

有什么办法可以让服务端的数据库读到客户端的txt呢?
[/Quote]
bcp可以在客户端运行
dawugui 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 snowylu 的回复:]
需求是应用到项目中 要导入的文本是在客户端 这些方式是必须文本在 数据库服务器端才能读写

有什么办法可以让服务端的数据库读到客户端的txt呢?
[/Quote]
需要映射.方法大致如下:

--SQL如何备份到异机

写成存储过程,建立作业定时备份~~~


--在sql中映射一下就可以了
exec master..xp_cmdshell 'net use z: \\yizhi\D$ "密码" /user:yizhi\administrator'

/*--说明:
exec master..xp_cmdshell 'net use z: \\xz\c$ "密码" /user:xz\administrator'

z:是映射网络路径对应本机的盘符,与下面的备份对应
\\xz\c$是要映射的网络路径

xz\administrator
xz是远程的计算机名,
administrator是登陆的用户名
密码 面指定的administrator用户的密码
--*/

--备份;with init覆盖|noinit添加
backup database 库名 to disk='E:\H_BACKUP.bak' with init

--COPY
exec master..xp_cmdshell 'copy E:\H_BACKUP.bak z:'

--删除(这句可以去掉)
--exec master..xp_cmdshell 'del E:\H_BACKUP.bak'

--完成后删除映射
exec master..xp_cmdshell 'net use z: /delete'
SnowyLu 2010-03-23
  • 打赏
  • 举报
回复
需求是应用到项目中 要导入的文本是在客户端 这些方式是必须文本在 数据库服务器端才能读写

有什么办法可以让服务端的数据库读到客户端的txt呢?
东那个升 2010-03-22
  • 打赏
  • 举报
回复
-----fmt 文件内容
--9.0
--4
--1 SQLCHAR 0 20 " " 1 cardId ""
--2 SQLCHAR 0 20 " " 2 name ""
--3 SQLCHAR 0 20 " " 3 startDate ""
--4 SQLCHAR 0 20 "\n" 4 endDate ""

-----txt内容

--cardId name startDate endDate
--1 lily 2007-01-20 2007-02-11
--2 hanmei 2008-01-21 2007-03-12
--3 lilei 2009-01-22 2009-02-11

insert tb_name(指定列)
SELECT cardId, name, startDate ,endDate
FROM OPENROWSET(BULK 'd:\test.txt',
FORMATFILE='d:\test.Fmt',
firstrow=2
) as t1
jsddj 2010-03-22
  • 打赏
  • 举报
回复
bcp
--小F-- 2010-03-22
  • 打赏
  • 举报
回复
/** 导入文本文件 */
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'
)
SnowyLu 2010-03-22
  • 打赏
  • 举报
回复
请问能详细的介绍下BULK INSERT和BCP的用法吗?
bancxc 2010-03-22
  • 打赏
  • 举报
回复
可以用bcp
feixianxxx 2010-03-22
  • 打赏
  • 举报
回复
文本导入SQL 可以使用BULK INSERT

想导出的话可以用BCP

22,209

社区成员

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

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