通过sql语句导入csv文件

最近在导入数据库的时候遇到一个问题,本地有30多个csv,每次导入都要选择一遍,不支持批量导入,就想着是否能实现使用sql语句进行导入的功能;
起初是想要循环进行导入的,最终没有找到在sql中循环获取目录下的文件的方法;
只是实现了通过sql实现csv的导入,但是也比一个一个右击通过导入窗口方便了很多,记录一下:

--定义一个Sql变量
DECLARE @SQL NVARCHAR(MAX) 
-- 假设你的CSV文件在某个目录下
DECLARE @FilePath VARCHAR(255) = 'C:\Users\Administrator\Desktop\test\test\'
DECLARE @FileName VARCHAR(255) = '20241226.csv'
--将csv中的数据导入到表中,如果表名是数字可以加[]
--FIELDTERMINATOR:表示导入的数据以逗号分隔
--FIRSTROW:表示从第二行开始导入
SET @SQL = 'BULK INSERT 表名 FROM ''' + @FilePath + @FileName 
+ ''' WITH (FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'',FIRSTROW = 2)'
EXEC sp_executesql @SQL

如果大家有好的方法,欢迎评论区分享,共同学习。

你可能感兴趣的:(数据库,sql,数据库,java)