Sql 作为nvarchar(10))+,代码页='ACP',' 'FORMATFILE='''+@formatFilePath+'''')' 打印@query exec(@query) 如果@moveProcessed=1 开始 设置@query='master
作为nvarchar(10))+,代码页='ACP',' 'FORMATFILE='''+@formatFilePath+'''')' 打印@query exec(@query) 如果@moveProcessed=1 开始 设置@query='master.dbo.xp_cmdshell“复制/Y'+@filename++'+@folder+'\done” exec(@query) set@query='master.dbo.xp_cmdshell“del/Q'+@filename+'” exec(@query) 结束 从myc获取下一个到@filename 结束 关闭myc 解除分配myc 结束Sql 作为nvarchar(10))+,代码页='ACP',' 'FORMATFILE='''+@formatFilePath+'''')' 打印@query exec(@query) 如果@moveProcessed=1 开始 设置@query='master,sql,sql-server,csv,rows,Sql,Sql Server,Csv,Rows,作为nvarchar(10))+,代码页='ACP',' 'FORMATFILE='''+@formatFilePath+'''')' 打印@query exec(@query) 如果@moveProcessed=1 开始 设置@query='master.dbo.xp_cmdshell“复制/Y'+@filename++'+@folder+'\done” exec(@query) set@query='master.dbo.xp_cmdshell“del/Q'+@filename+'” exe
在上述查询中,第一列(字段1)将附加一个逗号。Plz将第一部分替换为子字符串(item,1,CHARINDEX(',',,item)-1)作为字段1。在上面的查询中,第一列(Field1)将附加一个逗号。Plz将第一部分替换为子字符串(item,1,CHARINDEX(“,”,item)-1)作为Field1。这是另一个问题。OP已经得到了一个包含单列的表,并希望将其改为包含两列的表(每个值将拆分为两列)。你链接到的帖子是关于将一个值拆分为一列值的,这也不是一个常见的问题,只是它完全不同。这是一个不同的问题。OP已经得到了一个包含单列的表,并希望将其改为包含两列的表(每个值将拆分为两列)。您链接到的帖子是关于将单个值拆分为一列值的,这也是一个常见的问题,只是它完全不同。
xxx,111
yyy,222
zzz,333
xxx 111
yyy 222
zzz 333
SELECT
SUBSTRING(item, 1,
CHARINDEX(',', item) - 1
) AS Field1,
SUBSTRING(item, CHARINDEX(',', item) + 1,
LEN(item) - CHARINDEX(',', item)
) AS Field2
FROM A
-- ============================================================
-- Author: László Tenki
-- Create date: 2011-06-20
-- Description: Data integration script for loading Excel files
-- using the standard MS data connectivity pack
-- Microsoft.ACE.OLEDB.12.0
-- ============================================================
ALTER procedure [di].[genericCSVImporter]
-- parameters for the stored procedure
@folder varchar(500), @fileNamePattern varchar(100),
@table varchar(128), @moveProcessed bit,
@fieldDelimiter varchar(1), @firstRow int, @formatFile nvarchar(25)
as
begin
declare @query varchar(1000)
declare @filename varchar(200)
declare @formatFilePath varchar(200)
declare @dir table ([name] varchar(200))
set @query ='master.dbo.xp_cmdshell "dir ' + @folder + '\' + @fileNamePattern + ' /b"'
set @query = replace(@query, '\\', '\')
insert into @dir exec (@query)
delete from @dir where name is NULL
declare myc cursor for select [name] from @dir where [name]<> 'File Not Found' order by [name]
open myc
fetch next from myc into @filename
while @@fetch_status = 0
begin
set @filename = @folder + '\' + @filename
set @filename = replace(@filename, '\\', '\')
set @formatFilePath = replace(@folder + '\' + @formatFile, '\\', '\')
set @query ='BULK INSERT ' + @table + ' FROM ''' + @filename +
''' WITH (FIELDTERMINATOR = ''' + @fieldDelimiter + ''', ROWTERMINATOR = ''\n'', ' +
'FIRSTROW = ' + cast(@firstRow as nvarchar(10)) + ', CODEPAGE = ''ACP'', ' +
'FORMATFILE=''' + @formatFilePath + ''')'
print @query
exec (@query)
if @moveProcessed=1
begin
set @query = 'master.dbo.xp_cmdshell "copy /Y ' + @filename + ' ' + @folder +'\done"'
exec (@query)
set @query = 'master.dbo.xp_cmdshell "del /Q ' + @filename + '"'
exec (@query)
end
fetch next from myc into @filename
end
close myc
deallocate myc
end