我至少有50个.txt
个文件需要导入SQL Server。如果我在Management Studio中手动执行此操作,则非常耗时。
这些文本文件具有不同的列数并且不相同。所以我想编写一些代码来导入这些由|
分隔的文件,并将第一行用作标题。
我创建的代码不起作用。首先,我将其导入1列,然后通过定义列拆分列。但问题是我不知道该文件有多少列。
那么导入文本文件并使用第一行作为标题还有另一种技巧吗? (它与使用该实用程序相同,而是创建一个代码,我可以将其用于所有50个文本文件,并且每个文件的列数不重要)
这是我创建的代码:
declare @cmd varchar(max)
declare @file varchar(max)
declare @folder varchar(max)
drop table #TMP
create table #TMP (heleregel nvarchar(max))
set @folder = 'D:\...\'
set @file = 'test'
truncate table #TMP
SET @cmd = 'BULK INSERT #TMP FROM ''' + @folder + @file + '.txt''
WITH(FIELDTERMINATOR = ''|||'',ROWTERMINATOR = ''\n'')
EXEC(@cmd)
DROP TABLE test
SELECT
ltrim(rtrim(dbo.UFN_SEPARATES_COLUMNS(heleregel, 1, '|'))) as test1,
ltrim(rtrim(dbo.UFN_SEPARATES_COLUMNS(heleregel, 2, '|'))) as test2,
ltrim(rtrim(dbo.UFN_SEPARATES_COLUMNS(heleregel, 3, '|'))) as test3,
ltrim(rtrim(dbo.UFN_SEPARATES_COLUMNS(heleregel, 4, '|'))) as test4
INTO
test
FROM
#TMP