SQL Server:使用第一行作为标题

时间:2017-08-09 17:06:42

标签: sql-server import text-files

我至少有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

0 个答案:

没有答案