有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;