将具有2列的txt文件导入到SQL Server Management Studio中的不同列中

时间:2018-11-07 06:15:35

标签: sql sql-server

我有一个txt文件,其中包含许多以下格式的项目

DBSERVER: HKSER
DBREPLICAID:  51376694590
DBPATH:  redirect.nsf
DBTITLE:  Redirect AP
DATETIME:  09.03.2015 09:44:21 AM
READS:  1
Adds:  0
Updates:  0
Deletes:  0

DBSERVER:  HKSER
DBREPLICAID:  21425584590
DBPATH:  redirect.nsf
DBTITLE:  Redirect AP
DATETIME:  08.03.2015 09:50:20 PM
READS:  2
Adds:  0
Updates:  0
Deletes:  0
.
.
.
.

please see the source capture here

我想将txt文件导入以下SQL格式

1st column  2nd column   3rd column     4th column    5th column  .....
DBSERVER    DBREPLICAID  DBPATH         DBTITLE       DATETIME    ......
HKSER       51376694590  redirect.nsf   Redirect AP   09.03.2015 09:44:21 AM
HKSER       21425584590  redirect.nsf   Redirect AP   08.03.2015 01:08:07 AM

please see the output capture here

非常感谢!

3 个答案:

答案 0 :(得分:0)

您可以将该文件转储到只有一个文本列的临时表中。导入后,您可以使用游标在该表中循环,将内容存储到变量中,并且每10条记录会在实际目标表中插入一个新行。

这不是最优雅的解决方案,但是它很简单并且可以完成工作。

答案 1 :(得分:0)

使用批量插入,您可以将标头和数据插入两个不同的列中,然后使用动态sql查询,可以创建表并根据需要插入数据。

答案 2 :(得分:0)

对于这样的事情,我可能会使用SSIS。

想法是创建一个脚本组件(作为转换)

您需要手动定义输出列(例如DBSERVER字符串(100))

Src是您的文件(正常读取)

想法是先逐行构建行,然后将整行添加到输出缓冲区。 例如 Output0Buffer.AddRow();

然后将行写入目标。

如果所有文件的格式都相同,则可以将每个循环的整个文件包装成一个