SQL 作业(Jobs)的创建及应用

1. 如何查看SQLServer的作业信息

--存储特定作业与一个或多个目标服务器的关联或关系。该表存储在 msdb 数据库中。
select * from msdb.dbo.sysjobservers 

--dbo.sysjobschedules包含将由 SQL Server代理执行的作业的计划信息。该表存储在 msdb 数据库中。(计划运行作业的下一个日期)
--注意:Sysjobschedules 表每20分钟刷新一次,这可能会影响 sp_help_jobschedule 存储过程返回的值。
select * from msdb.dbo.sysjobschedules

--dbo.sysjobs存储将由 SQL Server代理执行的各个预定作业的信息。该表存储在 msdb 数据库中。
select * from msdb.dbo.sysjobs

--dbo.sysjobsteps包含 SQL Server代理要执行的作业中的各个步骤的信息。该表存储在 msdb 数据库中。
select * from msdb.dbo.sysjobsteps

--多表结合查看
SELECT  * FROM msdb.dbo.sysjobs a WITH ( nolock )
INNER JOIN msdb.dbo.sysjobsteps b WITH ( nolock ) ON b.job_id = a.job_id

SELECT sj.name,
       sh.run_date,
       sh.step_name,
       STUFF(STUFF(RIGHT(REPLICATE('0', 6) +  CAST(sh.run_time as varchar(6)), 6), 3, 0, ':'), 6, 0, ':') 'run_time',
       STUFF(STUFF(STUFF(RIGHT(REPLICATE('0', 8) + CAST(sh.run_duration as varchar(8)), 8), 3, 0, ':'), 6, 0, ':'), 9, 0, ':') 'run_duration (DD:HH:MM:SS)  '
FROM msdb.dbo.sysjobs sj
JOIN msdb.dbo.sysjobhistory sh
ON sj.job_id = sh.job_id

2. 创建作业

2.1 使用 SQL Server Management Studio

(1) 在 “对象资源管理器” (object explorer)中,单击加号以展开要创建 SQL Server 代理作业的服务器
(2) 单击加号以展开 “SQL Server 代理”(SQL Server Agent)。
(3) 右键单击“作业”(Jobs)文件夹,然后选择“新建作业…”(New Job…)。
(4) 在 “新建作业” 对话框的 “常规” (General)页上,修改作业的常规属性,比如输入作业名称、作业所有者等信息
(5) 在 “步骤” (Steps)页上,组织作业步骤。
(6) 在 “计划”(Schedules) 页上,组织作业的计划。
(7) 在 “警报” (Alerts)页上,组织作业的警报。
(8) 在“通知”(Nortifications)页上,设置在作业完成时 MicrosoftMicrosoft SQL ServerSQL Server 代理要执行的操作。
(9) 在 “目标” (Targets)页上,管理作业的目标服务器。
(10) 完成后,单击 “确定” 。

2.2 使用 T-SQL

USE msdb ;  
GO  
EXEC dbo.sp_add_job  
    @job_name = N'Weekly Sales Data Backup' ;  
GO  
EXEC sp_add_jobstep  
    @job_name = N'Weekly Sales Data Backup',  
    @step_name = N'Set database to read only',  
    @subsystem = N'TSQL',  
    @command = N'ALTER DATABASE SALES SET READ_ONLY',   
    @retry_attempts = 5,  
    @retry_interval = 5 ;  
GO  
EXEC dbo.sp_add_schedule  
    @schedule_name = N'RunOnce',  
    @freq_type = 1,  
    @active_start_time = 233000 ;  
USE msdb ;  
GO  
EXEC sp_attach_schedule  
   @job_name = N'Weekly Sales Data Backup',  
   @schedule_name = N'RunOnce';  
GO  
EXEC dbo.sp_add_jobserver  
    @job_name = N'Weekly Sales Data Backup';  
GO

3. 实例应用

3.1 每周一早上执行指定路径下的脚本,并将执行日志导出成txt文件

declare @text nvarchar(800)=  'sqlcmd -E -i \\XXX.XX.XX.XXX\XXX.rpt';
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下Transact-SQL语句来创建一个名为“jobs”的数据库: CREATE DATABASE jobs; 该语句将创建一个名为“jobs”的空数据库。如果需要添加表或其他对象,请使用CREATE TABLE和其他相关语句。 ### 回答2: 用 Transact-SQL 语句创建 Jobs 数据库,需要经过以下几个步骤: 1. 打开 SQL Server Management Studio(SSMS),在 Object Explorer 中连接到 SQL Server 数据库引擎实例。 2. 在 SSMS 中点击新建查询按钮,在查询窗口中输入以下 Transact-SQL 语句: ```sql CREATE DATABASE Jobs; ``` 3. 执行以上语句,等待创建完成。如果创建成功,应该会在消息窗口中看到类似以下的消息: ``` Query OK, 1 row affected. ``` 4. 在 Object Explorer 中,如果没有显示 Jobs 数据库,可以尝试刷新一下。 5. 如果需要对 Jobs 数据库进行更多设置,比如设置文件组、设置文件路径等,可以使用 Transact-SQL 语句进行操作。以下是一些示例语句: ```sql -- 设置文件组 ALTER DATABASE Jobs ADD FILEGROUP JobsData; -- 添加数据文件 ALTER DATABASE Jobs ADD FILE ( NAME = JobsDataFile, FILENAME = 'E:\MSSQL\DATA\JobsData.mdf', SIZE = 512MB, MAXSIZE = UNLIMITED, FILEGROWTH = 256MB ) TO FILEGROUP JobsData; -- 添加日志文件 ALTER DATABASE Jobs ADD LOG FILE ( NAME = JobsLogFile, FILENAME = 'E:\MSSQL\LOG\JobsLog.ldf', SIZE = 256MB, MAXSIZE = 2GB, FILEGROWTH = 64MB ); ``` 6. 创建Jobs 数据库后,可以使用 Transact-SQL 语句创建表、视图、存储过程等数据库对象,或者使用 SSMS 提供的可视化界面进行操作。 总的来说,使用 Transact-SQL 语句创建 Jobs 数据库相对简单且灵活,可以满足各种不同的需求。但是需要注意的是,执行操作前应该先了解 Transact-SQL 知识和数据库设计原理,以免操作不当导致数据丢失或者安全问题。 ### 回答3: 在使用transact-sql语句创建jobs数据库之前,需要确保你已经安装了SQL Server Management Studio或SQL Server。下面是创建一个名为jobs数据库的步骤: 1. 打开SQL Server Management Studio或SQL Server。 2. 在“对象资源管理器”窗口中,右键单击“数据库”并选择“新建数据库”。 3. 在“新建数据库”对话框中,输入“jobs”作为数据库名称。 4. 在“文件”选项卡上,选择要存储数据文件和日志文件的路径。 5. 在“选项”选项卡上,可以选择设置数据库选项,例如恢复模式和默认语言。 6. 点击“确定”按钮创建数据库。 另外,也可以通过T-SQL语句创建数据库。以下是使用T-SQL语句创建jobs数据库的示例代码: CREATE DATABASE jobs ON (NAME = 'jobs_data', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\jobs_data.mdf', SIZE = 50MB, MAXSIZE = UNLIMITED, FILEGROWTH = 5MB) LOG ON (NAME = 'jobs_log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\jobs_log.ldf', SIZE = 25MB, MAXSIZE = UNLIMITED, FILEGROWTH = 5MB); GO 这段T-SQL语句创建了一个名为jobs数据库,并将数据文件保存在C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA目录下。 数据文件的初始大小为50MB,并且可以无限制地增长5MB,日志文件的初始大小为25MB,并且也可以无限制地增长5MB。注意:此示例中使用的目录和文件名会因环境而异,需要根据实际情况进行修改。 无论使用哪种方法创建jobs数据库,都需要确保该数据库是否存在,并且数据库有具体定义,以确保它可以正常使用和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值