在导出sqlserver 数据库中的表项时,如果设置备份地址
本帖最后由 qingcai5647 于 2009-12-04 16:13:06 编辑
使用sql server 2000 需要导出数据库中的某个表项,因为每周都需要执行一次导出
所以希望能自动执行导出
sqlserver提供的数据导出只能向一个文件里面重复写入信息
今天查了下资料
EXEC master..xp_cmdshell 'bcp mysql.dbo.test1 out c:\temp1.xls -c -q -S"MICROSOF-8B342F" -U"sa" -P"xucheng"'
这串代码表示将表test1导出到c:\temp1.xls
下面这串代码是今天问群里面一朋友给的
declare @filename nvarchar(100)
set @filename=replace(replace(replace(replace(CONVERT(char(16), getdate(), 120 ),'-',''),'',''),':',''),' ','') +'.xls'
print @filename
表示按照当前系统时间命名
请问下 把这两串结合起来该怎么写,T-sql代码,能实现每次对表项导出时,以当前系统时间自动命名!
------解决方案--------------------动态表名就行了.
declare @filename nvarchar(100)
set @filename=replace(replace(replace(replace(CONVERT(char(16), getdate(), 120 ),'-',''),'',''),':',''),' ','') +'.xls'
declare @cmd nvarchar(4000);
set @cmd = 'bcp mysql.dbo.test1 out c:\' + @filename + ' -c -q -S"MICROSOF-8B342F" -U"sa" -P"xucheng"';
exec xp_cmdshell @cmd;