天天看点

批量导入csv文件到数据库

有500多个csv文件,想导入SQL数据库内,数据库字段与文件字段是一样的,

如何写批量导入语句。

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;