参考脚本: declare @sqlstr varchar(3000) declare @i int select identity(int,1,1) as id ,字段1 into 数据库.dbo.临时表名 from 表 set @i=0 while @i*1000<100*1000 begin set @sqlstr='bcp "select top 1000 字段1 from 数据库.dbo.临时表名 where id>='+cast(@i*1000 as varchar(10))+' and id<'+cast(@i*1000+1000 as varchar(10))+'" queryout "c:\'+cast(@i as varchar(10))+'.txt" -c -T' exec master.dbo.xp_cmdshell @sqlstr set @i=@i+1 end drop table 临时表名 数据库.dbo是指你的数据库名和所有者,一般所有者就是dbo 另外动态语句用到了bcp,这是一个命令行应用程序,用法可以参考sql server的帮助,一般按我写的-c -T参数就可以了
select rtrim(A)+' '+rtrim(B)+' '+rtrim(C)+... from tabname ...
declare @sqlstr varchar(3000)
declare @i int
select identity(int,1,1) as id ,字段1
into 数据库.dbo.临时表名
from 表 set @i=0
while @i*1000<100*1000
begin
set @sqlstr='bcp "select top 1000 字段1 from 数据库.dbo.临时表名 where id>='+cast(@i*1000 as varchar(10))+' and id<'+cast(@i*1000+1000 as varchar(10))+'" queryout "c:\'+cast(@i as varchar(10))+'.txt" -c -T'
exec master.dbo.xp_cmdshell @sqlstr
set @i=@i+1
end drop table 临时表名
数据库.dbo是指你的数据库名和所有者,一般所有者就是dbo
另外动态语句用到了bcp,这是一个命令行应用程序,用法可以参考sql server的帮助,一般按我写的-c -T参数就可以了
或
EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'
导出到TXT文本,用逗号分开
exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'
AA 500000555 A3A M0001(两个字段之间空格数不一样,用SQL如何实现啊!)
AA 500000555 A3A M0001(两个字段之间空格数不一样,用SQL如何实现啊!)