我要用程序控制数据库的定时备份根据用户设置的时间(每天,每周,每月)来定时备份数据库我现在做了一个winform程序,让其一直在服务端运行,调用T—sql存储过程建立数据库作业 时间调度来定时备份数据库但是我点开始作业的时候老是报错 不能执行作业 新建成功的作业要怎样用T-sql语句来开始作业啊 如果是在asp.net中直接设置定时备份的时间的话有没有办法可以实现啊
有做过的实例的话可以发我不 QQ1021695829 有的话请发我邮箱 谢谢了
C#调用的
有做过的实例的话可以发我不 QQ1021695829 有的话请发我邮箱 谢谢了
C#调用的
解决方案 »
- Nhibernate在web环境下就出错
- asp.net网页中弹出一个层的问题!
- 查看大表时,如何固定表头和第一列(行名)大家帮给些意见
- 正则高手进来看一下
- 關於Ajax的問題 在線等.請各位大俠申出援手(急急急急急急急急急急急急) 分不夠可以加
- Request.ServerVariables["HTTP_X_FORWARDED_FOR"]报错
- 求msSQl的存储过程:更新整张表中的某一字段的所有值
- 关于存储过程中的输出参数
- 关于 ASP.net(c#) 里分页表格的问题请教高手!(分不够再加)
- 请问为何response.write("<script language=javascript> alert('hello!') </script>"不能运行!?
- 请问各位大侠哥哥 如何固定设置一个页面最小宽度后,使得满屏浏览器大小无法被鼠标拖动而改变大小
- asp.net 下载功能
创建时就可设置什么时间启动
window服务timer定时执行
也不知道怎么回事 有没实际例子参考下啊
如果是数据库方面的,可以用SqlServer的作业,去执行存储过程。。
偶很郁闷 新建成功了 咋不能执行呢 说是要用add_jobserver来建立作业与作业服务器的关联
郁闷中 高手 快来啊
郁闷中 自己顶
SQL既然有备份功能
我想就能调取这串命令
这个是备份的命令 这个是调用存储过程建立作业
BACKUP DATABASE MyOA TO DISK = 'C:/MyOA.bak' with init exec p_createjob @jobname='mm',@sql='select * from syscolumns',@freqtype='month'
每月备份
-- 2010-8-16/13:59 上生成的脚本
-- 由: test
-- 服务器: (LOCAL)BEGIN TRANSACTION
DECLARE @JobID BINARY(16)
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1
EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]' -- 删除同名的警报(如果有的话)。
SELECT @JobID = job_id
FROM msdb.dbo.sysjobs
WHERE (name = N'test')
IF (@JobID IS NOT NULL)
BEGIN
-- 检查此作业是否为多重服务器作业
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
WHERE (job_id = @JobID) AND (server_id <> 0)))
BEGIN
-- 已经存在,因而终止脚本
RAISERROR (N'无法导入作业“test”,因为已经有相同名称的多重服务器作业。', 16, 1)
GOTO QuitWithRollback
END
ELSE
-- 删除[本地]作业
EXECUTE msdb.dbo.sp_delete_job @job_name = N'test'
SELECT @JobID = NULL
END BEGIN -- 添加作业
EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'test', @owner_login_name = N'test', @description = N'没有可用的描述。', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback -- 添加作业步骤
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'step1', @command = N'BACKUP DATABASE master TO DISK = ''C:/master.bak'' with init', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1 IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback -- 添加作业调度
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'Seq', @enabled = 1, @freq_type = 4, @active_start_date = 20100816, @active_start_time = 0, @freq_interval = 1, @freq_subday_type = 1, @freq_subday_interval = 0, @freq_relative_interval = 0, @freq_recurrence_factor = 0, @active_end_date = 99991231, @active_end_time = 235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback -- 添加目标服务器
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback END
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave: