SQL 服务器 - 如何在不批量插入的情况下将文本文件插入 table
SQL Server - How can i insert text file into a table without bulk insert
我想在 table 中插入一个文本文件,而无需 批量插入命令。
它的脚本是什么?我到处都找不到它。
有一个批量插入的脚本,但我需要做一个普通的插入。
我能想到的唯一方法如下:
文件内容如下:
id, col1, col2
2、甲、乙
4、甲、乙
declare @test table (id int,col1 varchar(10),col2 varchar(10))
declare @inter table (op varchar(50))
insert into @inter
exec xp_cmdshell 'type E:\Data\readit.txt'
insert into @test
select substring(op,0,charindex(',',op)),
substring(reverse(op),0,charindex(',',reverse(op))),
replace(replace(replace(op,substring(op,0,charindex(',',op)),''),substring(reverse(op),0,charindex(',',reverse(op))),''),',','')
from @inter where op <>(select top 1 op from @inter)
select * from @test
结果是:
id col1 col2
2 B A
4 B A
如你所见,它非常复杂,所以你应该使用批量插入
我想在 table 中插入一个文本文件,而无需 批量插入命令。
它的脚本是什么?我到处都找不到它。
有一个批量插入的脚本,但我需要做一个普通的插入。
我能想到的唯一方法如下: 文件内容如下:
id, col1, col2
2、甲、乙
4、甲、乙
declare @test table (id int,col1 varchar(10),col2 varchar(10))
declare @inter table (op varchar(50))
insert into @inter
exec xp_cmdshell 'type E:\Data\readit.txt'
insert into @test
select substring(op,0,charindex(',',op)),
substring(reverse(op),0,charindex(',',reverse(op))),
replace(replace(replace(op,substring(op,0,charindex(',',op)),''),substring(reverse(op),0,charindex(',',reverse(op))),''),',','')
from @inter where op <>(select top 1 op from @inter)
select * from @test
结果是:
id col1 col2
2 B A
4 B A
如你所见,它非常复杂,所以你应该使用批量插入