求助:多个csv文件导入到数据库 问题

dsywo 2014-01-15 10:07:49
有365个csv文件,想导入SQL server 数据库内,如何写批量导入语句。

找到一个文件,但是没有看懂,不知道怎么用。。

大牛们给解释一下~~

需要在数据库建什么形式的表,还有CSV文件没有表头。

DECLARE @dir sysname,@cmd nvarchar(max);
SET @dir = 'C:/';

CREATE TABLE #tmp(filename nvarchar(1024));
SET @cmd = N'dir "' + @dir + '*.csv" /B'
INSERT #tmp EXEC master.dbo.xp_cmdshell @cmd;

DELETE #tmp WHERE filename IS NULL;

IF EXISTS(SELECT * FROM #tmp WHERE filename LIKE '%找不到文件%')
BEGIN
RAISERROR('找不到文件',16,1)
END
ELSE
BEGIN
DECLARE @SQL nvarchar(MAX);
SET @SQL = '';
SELECT @SQL = @SQL + 'EXEC xp_cmdshell N''bcp 数据库.dbo.表 in "' + @dir + filename
+ '" -w -T -t, -r/n'';' + CHAR(10)
FROM #tmp;

EXEC(@SQL);
END

DROP TABLE #tmp;
...全文
161 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2014-01-15
  • 打赏
  • 举报
回复
引用 1 楼 dsywo 的回复:
求解释上面代码,或者可以用的导入代码~~~
DECLARE @dir sysname,@cmd nvarchar(max);

--你的csv文件的路径
SET @dir = 'C:/';
 
 
CREATE TABLE #tmp(filename nvarchar(1024));
SET @cmd = N'dir "' + @dir + '*.csv" /B'

--执行命令,会返回在指定的路径下面的所有csv文件,也就是你要导入的csv文件
--每个文件名,都是一样数据
INSERT #tmp EXEC master.dbo.xp_cmdshell @cmd;
 
 
--删除最后的一行null 
DELETE #tmp WHERE filename IS NULL;
 
IF EXISTS(SELECT * FROM #tmp WHERE filename LIKE '%找不到文件%')
    BEGIN
        RAISERROR('找不到文件',16,1)
    END
ELSE
    BEGIN
        DECLARE @SQL nvarchar(MAX);
        SET @SQL = '';
        
        --拼接导入csv文件的语句
        SELECT @SQL = @SQL + 'EXEC xp_cmdshell N''bcp 数据库.dbo.表 in "' + @dir + filename 
                           + '" -w -T -t, -r/n'';' + CHAR(10)
        FROM #tmp;
 
        --执行导入
        EXEC(@SQL); 
    END
 
DROP TABLE #tmp;
human_2000 2014-01-15
  • 打赏
  • 举报
回复
2000的话 可以直接用OpenRowset http://mobile.dotblogs.com.tw/bruce655/archive/2012/02/02/67491.aspx
human_2000 2014-01-15
  • 打赏
  • 举报
回复
xp_cmdshell  想定义执行一个程序 bcp 就是SQLSERVER用来数据导入的程序-w -T -t, -r/n 这些都是在dos下录入的参数,搜索一下BCP就明白了
dsywo 2014-01-15
  • 打赏
  • 举报
回复
为什么没有人来!!!
dsywo 2014-01-15
  • 打赏
  • 举报
回复
求解释上面代码,或者可以用的导入代码~~~
xupeihuagudulei 2014-01-15
  • 打赏
  • 举报
回复
怎么感觉读CSV这工作应该用程序来实现呢

22,210

社区成员

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

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