MS SQL作业问题

DiscussQuestions 2010-02-01 05:58:36
如何在SQL2005中设定定时作业,比如说定时清理某些表的数据,
或者是定时的将某些表的数据导出excel!
在线等待,急急急,最好是详细步骤!
之前我做的作业有点问题!
...全文
205 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Nice 2010-02-22
  • 打赏
  • 举报
回复
路过,学习........
人鱼传说 2010-02-22
  • 打赏
  • 举报
回复
SQL里都是图形化作业,很简单哟
xiaolingyanjituan 2010-02-09
  • 打赏
  • 举报
回复
zheg这个备份作用里面不是有的呀..>>>>
feegle_develop 2010-02-09
  • 打赏
  • 举报
回复
步骤:管理=>SQL Server代理=>作业=>右键 新建作业=>填写名称(随便写)=>点击 步骤=>新建=>步骤名=>选择 数据库=>执行存储过程语句或SQL语句=>调度=>新建调度=>调度名称=>选择更新时间=>完成
--小F-- 2010-02-01
  • 打赏
  • 举报
回复
从SQL2000升级到2005,不知是否没装好,数据库维护计划不能使用。换了一台机试了下,打上SP2或SP3后可以正常使用维护计划,但由于种种原因,这台机不能打SP2或SP3,这下麻烦了,备份怎么办?不用怕,维护计划不能用,可以用作业备份:

SQL SERVER代理--作业--新建作业--设好“常规、步骤、计划、警报、通知、目标”等项。在步骤里面输入如下命令:

DECLARE @sql VARCHAR(500),@DBNAME SYSNAME
SET @DBNAME = 'AIS20070830192910' --修改为要备份数据库名字
SET @sql = 'BACKUP DATABASE [' + @DBNAME + '] TO DISK = ''F:\SQL-MDF\bak\' + @DBNAME + '_FULL_BAK_' +CONVERT(VARCHAR,GETDATE(),112)+ '.BAK'''
EXEC(@sql)

另外别忘了在SQL SERVER CONFIGURATION MANAGER里面将AGENT服务打开。


还有一些网友写的,没有试过,以后有空用来试试:

--自动删除三天前的备份
declare @data_3ago nvarchar(50)
declare @cmd varchar(50)
set @data_3ago = 'F:\SQL-MDF\bak\ '+convert(varchar(10),getdate()-3,112)
set @cmd = 'del '+ @data_3ago
exec master..xp_cmdshell @cmd
--自动备份
go --中间加一个go
declare @data nvarchar(50)
set @data= 'F:\SQL-MDF\bak\ '+convert(varchar(10),getdate(),112)
BACKUP DATABASE job TO DISK = @data
with init




删除15天前备份文件

--备份
declare @sql varchar(8000)
set @sql='backup database mis to disk=''d:\databack\mis\mis'
+rtrim(convert(varchar,getdate(),112))+'.bak'''
exec(@sql)
--删除15天前备份文件
set @sql='del d:\databack\mis\mis'
+rtrim(convert(varchar,getdate()-15,112))+'.bak'''
exec master..xp_cmdshell @sql
yananguo_1985 2010-02-01
  • 打赏
  • 举报
回复

例子:
数据库TEST中存在表
mc qcid jg bz
-------------------- ----------- ----------- ----------
name1 1 4 g
name1 2 4 g
name2 1 4 g
name2 2 4 g
name3 1 4 g
name3 2 4 g
name4 1 4 g
name5 1 4 g
name6 1 4 g
name7 1 4 g
name8 1 4 g
name9 1 4 g

现在要将字段qcid清为0

建立JOB:
点击SQL SERVER 代理-》作业-》新建作业-》名称填(随便填) E-》点击步骤-》新建-》步骤名称填E-》
数据库选择TEST-》命令里面写上update test set qcid=0-》点击计划-》新建-》计划名称E-》频率那选择你的JOB执行的时间(具体看自己的需要)-》最后点击确定


下面来执行下JOB,再看看表里的数据
-----------
mc qcid jg bz
-------------------- ----------- ----------- ----------
name1 0 4 g
name1 0 4 g
name2 0 4 g
name2 0 4 g
name3 0 4 g
name3 0 4 g
name4 0 4 g
name5 0 4 g
name6 0 4 g
name7 0 4 g
name8 0 4 g
name9 0 4 g

(12 行受影响)



JOB执行成功。。

JOB执行时间来你自己根据需要选择。可以设计在某个时间段内某个时间点循环执行

具体定时的将某些表的数据导出excel

你参考下:

生成表里的数据生成TXT文件

DECLARE @date datetime
DECLARE @sql_query varchar(6000)
set @date=getdate()

declare @r_date char(10)
declare @sql varchar(200)
set @r_date = convert(char(10),DATEADD(dd,-1,getdate()),20)
set @sql='select * from [tradedb].[dbo].[store_report_'+@r_date+']'

delete from [tradedb].[dbo].[store_yestoday]
insert into [tradedb].[dbo].[store_yestoday]
exec(@sql)

set @sql_query='select * from [tradedb].[dbo].[store_yestoday] order by orderid'

select len(@sql_query)
EXEC sp_sql_query_to_file 'HDWAPPDB-03','sa','"Olu#9%!7&kL"',@sql_query,'d:\report\lz_report',@date -- 'd:\report\report'为文件存放的绝对路径,不需要文件后缀,如d:\report\report表示放在d:\report文件夹下的report_***.txt,其中‘.txt’为自动生成的后缀)



上面为执行的JOB,里面的存储过程sp_sql_query_to_file如下:
create PROCEDURE sp_sql_query_to_file(
@servername varchar(50), --服务器名
@username varchar(50), --用户名,如果用NT验证方式,则为空''
@password varchar(50) , --密码
@sql_query varchar(2000) , --SQL查询语句,有字符条件时用单引号
@filePath_name varchar(1000), --导出路径和文件名
@date datetime --保存文件时的生成日期戳
)AS
DECLARE @sql varchar(8000)
SET @sql='bcp "'+@sql_query + '" queryout '+' "'+@filePath_name+'_'+
convert(varchar(12),@date,112)+'.txt " /t "," /w'
+' /S '+@servername
+CASE WHEN ISNULL(@username,'')='' THEN '' ELSE ' /U '+@username END
+' /P '+ISNULL(@password,'')

select @sql

EXEC master..xp_cmdshell @sql

IF @@Error<>0 BEGIN
print '生成文件时出错了,请查看!'+@@Error
END


GO


htl258_Tony 2010-02-01
  • 打赏
  • 举报
回复
参考:http://hi.baidu.com/toiota/blog/item/ef105890249fa684a977a4dc.html
feixianxxx 2010-02-01
  • 打赏
  • 举报
回复
帮UP

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧