求TXT动态文件名导入过程,求大侠帮忙!

manqz8 2010-03-30 01:01:14
求TXT动态文件名导入过程
本人有三个txt表为a20100325.txt b20100325.txt c20100325.txt
以上三表命名方式都是以字母+日期为格式的,并且日前是变化的(字母不变)

a20100325.txt内容为
字段1, 字段2, 字段3
11, 22, 33

b20100325.txt内容为
字段1, 字段2, 字段3
44, 55, 66

c20100325.txt内容为
字段1, 字段2, 字段3
77, 88, 99

要求以上三表导入table表,显示如下
字段1, 字段2, 字段3,日期
11, 22, 33,20100325
44, 55, 66,20100325
77, 88, 99,20100325
最好直接执行存储过程exec '20100325' 以上三表就可导入table表 表的路径都在F盘下
...全文
247 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
东那个升 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ldslove 的回复:]
SQL code

--fmt 文件
9.0
3
1 SQLCHAR 0 10 "\t" 1 字段1 ""
2 SQLCHAR 0 10 "\t" 2 字段2 ""
3 SQLCHAR ……
[/Quote]

2楼的PRINT改成EXEC就可以导入了。。。。。。

--小F-- 2010-03-30
  • 打赏
  • 举报
回复
用格式化文件进行导入导出
htl258_Tony 2010-03-30
  • 打赏
  • 举报
回复
SQL2008通过自带导入导出工具导入.txt数据的操作方法

1.登录SQL Server Management Studio,选中目标数据库;
2.右击数据库-->任务-->导入数据-->下一步-->数据源选择[平面文件源]-->浏览-->选择文件 格式:带分隔符下一步 可钩选在第一个数据行中显示列名称-->下一步至完成

http://blog.csdn.net/htl258/archive/2010/02/27/5331099.aspx
东那个升 2010-03-30
  • 打赏
  • 举报
回复
试过2#的吗》?



什么叫做文本的分隔符,我很笨
manqz8 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 manqz8 的回复:]
求TXT动态文件名导入过程
本人有三个txt表为a20100325.txt b20100325.txt c20100325.txt
以上三表命名方式都是以字母+日期为格式的,并且日前是变化的(字母不变)

a20100325.txt内容为
字段1, 字段2, 字段3
11, 22, 33

b20100325.txt内容为
字段1, 字段2, 字段3
44, 55, 66

各位大哥,以上文本中的逗号,是文本的分隔符
东那个升 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ldslove 的回复:]
SQL code

--fmt 文件
9.0
3
1 SQLCHAR 0 10 "\t" 1 字段1 ""
2 SQLCHAR 0 10 "\t" 2 字段2 ""
3 SQLCHAR ……
[/Quote]

--fmt 文件
9.0
3
1 SQLCHAR 0 10 "," 1 字段1 ""
2 SQLCHAR 0 10 "," 2 字段2 ""
3 SQLCHAR 0 10 "\r\n" 3 字段3 ""


改下格式文件。
东那个升 2010-03-30
  • 打赏
  • 举报
回复

--fmt 文件
9.0
3
1 SQLCHAR 0 10 "\t" 1 字段1 ""
2 SQLCHAR 0 10 "\t" 2 字段2 ""
3 SQLCHAR 0 10 "\r\n" 3 字段3 ""


create proc sp_bulk (@dt char(8))
as
BEGIN

declare @varA varchar(100)
declare @varB varchar(100)
declare @varC varchar(100)

set @varA='D:\A'+@dt+'.TXT'
set @varB='D:\B'+@dt+'.TXT'
set @varC='D:\C'+@dt+'.TXT'

PRINT('
insert table表(字段1, 字段2, 字段3,日期)
SELECT LTRIM(字段1),LTRIM(字段2),LTRIM(字段3),'''+@dt+'''
FROM OPENROWSET ( BULK '''+@varA+''',
FORMATFILE = ''D:\txt.fmt'',firstrow=2) AS a')

PRINT('
insert table表(字段1, 字段2, 字段3,日期)
SELECT LTRIM(字段1),LTRIM(字段2),LTRIM(字段3),'''+@dt+'''
FROM OPENROWSET ( BULK '''+@varB+''',
FORMATFILE = ''D:\txt.fmt'',firstrow=2) AS a')


PRINT('
insert table表(字段1, 字段2, 字段3,日期)
SELECT LTRIM(字段1),LTRIM(字段2),LTRIM(字段3),'''+@dt+'''
FROM OPENROWSET ( BULK '''+@varC+''',
FORMATFILE = ''D:\txt.fmt'',firstrow=2) AS a')
END


先建立格式文件。
junlintianxia07 2010-03-30
  • 打赏
  • 举报
回复
直接用工具导入就行啊

34,697

社区成员

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

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