Sql server SQL Server:使用第一行作为标题导入txt文件

Sql server SQL Server:使用第一行作为标题导入txt文件,sql-server,import,text-files,Sql Server,Import,Text Files,我至少有50个.txt文件需要导入SQL Server。如果我在ManagementStudio中手动执行,这将非常耗时 这些文本文件具有不同的列数,并且不相同。因此,我想编写一些代码来导入这些文件,这些文件由|分隔,并使用第一行作为标题 我创建的代码不起作用。首先,我将其导入1列,然后通过定义列来拆分该列。但问题是我并不总是知道文件有多少列 那么,导入文本文件并使用第一行作为标题还有其他技巧吗?(这与使用该实用程序相同,但创建的代码可以用于所有50个文本文件,而与每个文件的列数无关) 这是我创

我至少有50个
.txt
文件需要导入SQL Server。如果我在ManagementStudio中手动执行,这将非常耗时

这些文本文件具有不同的列数,并且不相同。因此,我想编写一些代码来导入这些文件,这些文件由
|
分隔,并使用第一行作为标题

我创建的代码不起作用。首先,我将其导入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

动力地狱?是否尝试使用openrowset和FMT filePowershell?尝试使用openrowset和FMT文件