** SQL SERVER 自动导出exec文件**
** 1.需要开启 master…xp_cmdshell**
启动语句
sp_configure ‘show advanced options’,1
reconfigure
go
sp_configure ‘xp_cmdshell’,1
reconfigure
go
2.导出脚本
##导出exec没有字段名
CREATE procedure [dbo].[SP_OUT_XLS]
as
begin
—这里可以增加对数据表的查询条件或更多的数据处理;
---将结果放入一个新的数据表,然后将这个新表导出EXCEL文件;
declare @file_path varchar(200);--导出EXCEl文件的路径;
declare @file_name varchar(200);--导出EXCEl的文件名;
declare @exec_sql varchar(200);--SQL语句;
---分开定义是为了以后修改路径或文件名更方便。
set @file_path = 'E:\Dept_Bak\'
set @file_name = 'dept' + CONVERT(varchar(100), GETDATE(), 112)+'.xls'
set @exec_sql = 'select * from DEMO.dbo.data0008' ---数据表使用的完整路径;
set @exec_sql = ' bcp "'+@exec_sql+'" queryout "'+@file_path+''+@file_name+'" -c -T -U "ADMIN" -P "ADMIN"';
----U "sa" -P "SQLpassword" 这是数据库的sa账号和密码;
print(@exec_sql)
exec master..xp_cmdshell @exec_sql
end
GO
##导出exec没有带字段名
CREATE PROCEDURE [dbo].[SP_out2xls]
as
declare @temp1 nvarchar(4000),@temp2 varchar(8000),
@服务器名 varchar(255),
@库名 varchar(255),
@表名 varchar(255),
@用户名 varchar(100),
@密码 varchar(100),
@路径及文件名 varchar(255)
set @服务器名='192.168.00.00';
set @库名 ='LIVE';
set @表名 ='V_AUTO_BARCODE_STOCK';
set @用户名 ='admin';
set @密码 ='admin';
set @路径及文件名 ='G:\SK_FILES\1122.xls';
set @temp1='select @value1='''',@value2='''' select @value1=@value1+'',''''''+a.name+''''+char(39)+'' [''+a.name+'']'',
@value2=@value2+'',cast(''+''[''+a.name+'']''+ '' as varchar(200))'' from '+@库名+'..syscolumns a,
'+@库名+'..sysobjects d where a.id=d.id and d.name='''+@表名+''''+' order by a.colorder'
exec('drop table '+@库名+'.dbo.T_MIDDLE_TABLE')
exec sp_executesql @temp1,N'@value1 nvarchar(4000) output , @value2 varchar(8000) output',@temp1 output,@temp2 output
select @temp1=right(@temp1,len(@temp1)-1),@temp2=right(@temp2,len(@temp2)-1)
exec('select * into '+@库名+'.dbo.T_MIDDLE_TABLE from (select '+ @temp1+' union all SELECT '+@temp2+' FROM '+@库名+'..'+@表名+') tem3')
set @temp2='bcp '+@库名+'.dbo.T_MIDDLE_TABLE out '+@路径及文件名+' -c -S'+@服务器名+' -U'+@用户名+' -P'+@密码
EXEC master..xp_cmdshell @temp2
GO
**3.创建好做一个作业定时执行即可: **![Alt]
如有侵权请联系删除