1

1つのフィールド(情報)を持つテーブルがあります。

Information
===========
Hello World 1
This is testing message
How are  you

行の値に基づいたコンテンツを持つ3つのテキストファイル(行数が3であるため)を作成したいと思います。

それで、

  • File1.txtにはHello World 1
  • File2.txtにはThis is testing message

SQL Serverでこれをどのように達成できますか?

4

1 に答える 1

0

このようなことを試してください:-

use master
go

declare @DSQL Nvarchar(max)
declare @counter int
declare @maxrows int
declare @filename Nvarchar(30)

select @counter=1, @maxrows = 0

create table t1 (
 sno int identity(1,1) not null,
 filename varchar(5),
 filecontent varchar(100)
)

insert into t1
select 'FN1', 'Hello'
UNION
select 'FN2', 'Good Morning'
UNION
select 'FN3', 'How are you?'
UNION
select 'FN14', 'Where are you?'

select @maxrows = count(*) from t1

--SELECT * FROM T1

while (@counter <= @maxrows)
begin
  select @filename = filename from t1
   where sno = @counter
select @DSQL = N'exec xp_cmdshell' + ' ''bcp "select filecontent from master.dbo.T1 where sno = ' + cast(@counter as nvarchar(10)) + '" queryout "d:\temp\' + @filename + '.txt" -T -c -S home-e93994b54f'''

print @dsql
exec sp_executesql @DSQL
   select @counter = @counter + 1
end

drop table t1
于 2012-12-05T17:14:57.493 に答える