003_作业_磁盘_参考

----------------------------------------------------

--创建相关表

IF OBJECT_ID(‘dbo.AvailableDiskSpace‘, ‘U‘) IS NOT NULL

DROP TABLE dbo.AvailableDiskSpace

GO

CREATE TABLE dbo.AvailableDiskSpace

(

Id          INT IDENTITY (1, 1) NOT NULL,

LastUpdate  SMALLDATETIME       NOT NULL,

DriveLetter CHAR(1)             NOT NULL,

FreeMB      INT                 NOT NULL,

) ON NutsAndBolts_Data

GO

ALTER TABLE dbo.AvailableDiskSpace ADD CONSTRAINT DF_AvailableDiskSpace_LastUpdate DEFAULT GETDATE() FOR LastUpdate

GO

ALTER TABLE dbo.AvailableDiskSpace ADD CONSTRAINT PK_AvailableDiskSpace PRIMARY KEY

(

Id

) ON NutsAndBolts_Data

GO

--创建procedure getAvailableDiskSpace

CREATE PROCEDURE dbo.getAvailableDiskSpace

AS

SET NOCOUNT ON

DECLARE @l_DiskFreeSpace       INT,

@l_FreeSpaceThreshhold INT,

@l_DriveLetter         CHAR(1),

@l_AlertMessage        VARCHAR(200),

@l_MailSubject         VARCHAR(100),

@l_Recipients          VARCHAR(100)

/* If free space is less than this (in MB), alert somebody */

SET @l_FreeSpaceThreshhold = 1024

SET @l_AlertMessage = NULL

SET @l_Recipients = ‘[email protected]‘

/* Create a temp table to hold disk space information */

CREATE TABLE #disk_free_space

(

DriveLetter CHAR(1) NOT NULL,

FreeMB      INT     NOT NULL

)

INSERT INTO #disk_free_space

EXEC master.dbo.xp_fixeddrives

/* Save results for trend analysis */

INSERT INTO dbo.AvailableDiskSpace (DriveLetter, FreeMB)

SELECT DriveLetter, FreeMB

FROM #disk_free_space

/* Examine free space of each drive and send email for those that are with low */

DECLARE cur_DriveSpace CURSOR FAST_FORWARD FOR

SELECT DriveLetter, FreeMB

FROM #disk_free_space

OPEN cur_DriveSpace

FETCH NEXT FROM cur_DriveSpace INTO @l_DriveLetter, @l_DiskFreeSpace

/* Examine free space of each drive */

/* Build text of email for each drive that is low */

WHILE (@@FETCH_STATUS = 0)

BEGIN

IF @l_DiskFreeSpace < @l_FreeSpaceThreshhold

BEGIN

IF @l_AlertMessage IS NULL

BEGIN

SET @l_AlertMessage = @l_DriveLetter + ‘ has ‘ + CAST(@l_DiskFreeSpace AS VARCHAR) + ‘ MB free.‘

END

ELSE

BEGIN

SET @l_AlertMessage = @l_AlertMessage + CHAR(13) + @l_DriveLetter + ‘ has ‘ + CAST(@l_DiskFreeSpace AS VARCHAR) + ‘ MB free.‘

END

END

FETCH NEXT FROM cur_DriveSpace INTO @l_DriveLetter, @l_DiskFreeSpace

END

CLOSE cur_DriveSpace

DEALLOCATE cur_DriveSpace

DROP TABLE #disk_free_space

-- Send out email

IF @l_AlertMessage IS NOT NULL

BEGIN

SET @l_MailSubject = ‘Free disk space is low on ‘ + @@SERVERNAME

EXECUTE msdb.dbo.sp_send_dbmail @recipients = @l_Recipients,

@subject = @l_MailSubject,

@body = @l_AlertMessage

END

GO

--新增作业

--1.执行 sp_add_job 来创建作业。-------------------------------------------

--

USE msdb

GO

BEGIN TRANSACTION

DECLARE @l_JobId BINARY(16),

@l_Err   INT

SELECT @l_Err = 0

IF NOT EXISTS ( SELECT 1

FROM msdb.dbo.syscategories

WHERE name = N‘[Uncategorized (Local)]‘ )

EXECUTE msdb.dbo.sp_add_category @name = N‘[Uncategorized (Local)]‘

-- Delete the job with the same name (if it exists)

SELECT @l_JobId = job_id

FROM msdb.dbo.sysjobs

WHERE (name = N‘Track Free disk space‘)

IF (@l_JobId IS NOT NULL)

BEGIN

-- Check if the job is a multi-server job

IF ( EXISTS ( SELECT 1

FROM msdb.dbo.sysjobservers

WHERE (job_id = @l_JobId) AND (server_id <> 0) ))

BEGIN

-- There is, so abort the script

RAISERROR (N‘Unable to import job ‘‘Track Free disk space‘‘ since there is already a multi-server job with this name.‘, 16, 1)

GOTO QuitWithRollback

END

ELSE

BEGIN

-- Delete the [local] job

EXECUTE msdb.dbo.sp_delete_job @job_name = N‘Track Free disk space‘

END

SELECT @l_JobId = NULL

END

BEGIN

-- Add the job

EXECUTE @l_Err = msdb.dbo.sp_add_job @job_id                = @l_JobId OUTPUT,

@job_name              = N‘Track Free disk space‘,

@owner_login_name      = N‘sa‘,

@description           = N‘No description available.‘,

@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 @l_Err <> 0)

GOTO QuitWithRollback

--2.执行 sp_add_jobstep 来创建一个或多个作业步骤。-------------------------------------------

-- Add the job steps

EXECUTE @l_Err = msdb.dbo.sp_add_jobstep @job_id               = @l_JobId,

@step_id              = 1,

@step_name            = N‘Step 1‘,

@command              = N‘EXECUTE dbo.getAvailableDiskSpace‘,

@database_name        = N‘NutsAndBolts‘,

@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 @l_Err <> 0)

GOTO QuitWithRollback

EXECUTE @l_Err = msdb.dbo.sp_update_job @job_id        = @l_JobId,

@start_step_id = 1

IF (@@ERROR <> 0 OR @l_Err <> 0)

GOTO QuitWithRollback

--3.执行 sp_add_schedule 来创建计划。-------------------------------------------

-- Add the job schedules

EXECUTE @l_Err = msdb.dbo.sp_add_jobschedule @job_id                 = @l_JobId,

@name                   = N‘Schedule 1‘,

@enabled                = 1,

@freq_type              = 4,

@active_start_date      = 20041119,

@active_start_time      = 50000,

@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 @l_Err <> 0)

GOTO QuitWithRollback

--4.执行 sp_attach_schedule 将计划附加到作业。

--5.执行 sp_add_jobserver 来设置作业的服务器。-------------------------------------------

-- Add the Target Servers

EXECUTE @l_Err = msdb.dbo.sp_add_jobserver @job_id      = @l_JobId,

@server_name = N‘(local)‘

IF (@@ERROR <> 0 OR @l_Err <> 0)

GOTO QuitWithRollback

END

COMMIT TRANSACTION

GOTO EndSave

QuitWithRollback:

IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION

EndSave:

GO

--启动作业

exec msdb.dbo.sp_start_job @job_name=‘JOB_CYCLE_ERRORLOG‘

--停止作业

exec msdb.dbo.sp_stop_job    @job_name=‘JOB_CYCLE_ERRORLOG‘

-- 启用或禁用作业

EXEC msdb.dbo.sp_update_job

@job_name = N‘JOB_CYCLE_ERRORLOG‘,

@enabled = 0 ;  --0 禁用作业、  1启用作业

--删除作业

EXEC msdb.dbo.sp_delete_job  @job_name = ‘JOB_CYCLE_ERRORLOG‘;

--查询所有作业的相关信息

select b.job_id,b.name,a.step_id,a.step_name,b.description,a.command,a.database_name,c.next_run_date,c.next_run_time,a.last_run_date,a.last_run_time

from msdb..sysjobsteps a,msdb..sysjobs b,msdb..sysjobschedules c

where a.job_id=b.job_id and a.job_id=c.job_id

order by c.next_run_date,c.next_run_time,b.job_id,a.step_id

--查看当前会话的作业活动

use msdb

exec sp_help_jobactivity

--将当前作业活动插入到临时表

select * into #test_liwz from openrowset(‘SQLOLEDB‘,‘SERVER=172.16.0.214;uid=fpf;pwd=214fzgj;database=chisdb_bjrm_mz‘,‘exec msdb..sp_help_jobactivity‘) a

时间: 2024-08-24 11:37:26

003_作业_磁盘_参考的相关文章

三口之家2014年买房理财规划:组合贷缓月供压力 理财资讯 财富故事 理财案例_新浪财经_新浪网

投资与理财记者 吴辉 春暖花开时,江苏常州的读者陈芊芊致信<投资与理财>,诉说她的买房计划.她纠结于要不要现在买房,担心买房后,生活压力变大,影响了现在的生活质量,并希望我们的理财师能给她一些建议,告诉她怎样的理财规划更为合理? 芊芊今年32岁了,目前在一个集团公司上班,税后年收入55000元,年底其他收入29000元,有社保和公积金.但公积金每月交的钱只有300元,而且存款才一年.老公税后年收入60000元,无社保,无公积金,也没有任何商业保险.年底时,老公会交给她3 0 0 0 0元存款.

二孩家庭应保证安全增加投资 5万存款可转国债 存款 国债 家庭_新浪财经_新浪网

推荐阅读: 案例:许先生是一家公司职员,妻子在家带孩子,有两个孩子,大的两岁半,小的刚两个月.目前家庭月收入6000元,月开销2500元.明年妻子也会上班,月收入增加3500元.但考虑到以后孩子的教育问题,最近两三年想在老家四川买套房子,总价约50万元. 现在只有存款5万元,全部存在银行,想请理财师帮规划,怎样在未来3年理财买房? 分析:许先生一家收入较为稳定,目前家庭每月有3500元结余,随着孩子逐渐长大,未来花销会有所增加,妻子上班后可将妻子收入的3500元全部用于家庭日常花销,宽备窄出.

内地客买30万重疾险香港便宜1 3 可保重疾多13种 香港 保险公司 保险_新浪财经_新浪网

买30万重疾险香港便宜1/3可保重疾多出13种 一群群内地客在香港海港城,排起长龙,炎热的夏天,时不时见有人用纸巾擦擦汗--这一幕不只是为了购买Gucci.LV等奢侈品,还有的为了香港保险公司的保单,有人戏谑香港保险代理签内地单签到"手软". 虽然到香港买保险,很多人心存疑虑,不少媒体也大称"地下保单"非法.无效,未来或存在理赔风险的告诫声也不绝于耳,但据香港保险业监理处统计,自2005年起,内地客新增保单保费总额从18.2亿港元上升到去年的149亿港元,增幅逾7倍

基本数据类型(字符串_数字_列表_元祖_字典_集合)

基本数据类型(字符串_数字_列表_元祖_字典_集合) 1.字符串 2.数字 除了布尔类型外,int.long.float和complex都可以使用的运算为:加.减.乘.除.整除.幂运算和取余 3.列表和元组 列表的内容可变,可以包含任意对象,使用中括号表示.元组的内容不可变,可以包含任意对象,使用圆括号表示.元组 1 l = [1, 2, 3, '4', '5'] # 列表 2 l = list((1, 2, 3, '4', '5')) 3 4 t = (1, 2, 3, '4', '5') #

2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周

2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周 博客要求 组内同学需各自发表博客 博客中需包含以下内容: 相关过程截图 关键代码解释 遇到的困难及解决方法 写出项目中自己负责的部分 个人贡献度划分(按百分比给小组各成员划分贡献度,各成员贡献之和为100%) 对结对的小伙伴做出评价给出小伙伴博客链接(重点指出需要改进的地方) 给出项目的码云链接 给出小组结对编程照片 博客内容中如需展示团队的共同成果,请进行说明 如有参考或引用的设计.实现,请进行说

转载--如何使用# ## ... _ _VA_ARGS_ _

作者:hxxiaopei 链接: 如何使用# ## ... _ _VA_ARGS_ _ 1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串.例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串.该过程称为字符串化(stringizing).#incldue <stdio.h>#define PSQR(x) printf("the square of" #x "is

60后退休收入将大降 怀揣210万如何让养老不差钱 理财产品 养老 退休_新浪财经_新浪网

文本刊实习生刘昕 私营企业养老金"不给力",退休生活得靠自己."60后"丁先生爱自驾旅行,想换SUV.怀揣210万元存款,退休后如何保持原来的生活水平?掂量着自己的钱袋,丁先生是否该换车呢? 国内延迟退休方案悬而未决,但作为"60后"的丁先生,恐怕无论如何也会摊上"被延迟"这档事儿.以丁先生的实际情况,他退休后的收入会明显缩水,如此算来延迟退休好像也是不错的选择.然而,既然怀着一颗想远行的心,工作似乎就成了羁绊.丁先生希望退休

80后女孩买房三步走 短期增值是首步 资金 增值 理财_新浪财经_新浪网

三湘华声全媒体记者 梁兴 通讯员 王茜 [个案资料] 尹婵,今年28岁,是长沙一名普通的公司职员.步入社会5年以来,月收入一直在4500元左右,但因勤俭节约,月结余能达到3000元,年终奖5000元.目前有存款18万元,有"五险一金",无任何商业保险. 尹婵是土生土长的长沙姑娘,父母工资收入稳定.由于工作后仍和父母一起居住,不需要承担房租或房贷.虽然父母乐意提供食宿,但是尹婵不想做"啃老族",每月给父母800元"搭伙费". [财务诊断] 尹婵工作

专家来教你 稳健理财产品如何选 理财产品 资金 收益_新浪财经_新浪网

□广发银行 钟永斌 随着市场流动性紧张得到缓解,2014年以来银行理财产品预期收益率回落.在这种情况下,稳健型投资者该如何挑选理财产品呢? 个人投资者应该通过理财产品的合理组合,在控制整体投资风险的前提下,最大限度地提升整体收益率.理财产品实际收益水平如何要具体考察该产品的投资标的.投资策略.产品结构等因素,同时更需研判与市场动态变化情况. 目前,银行理财产品主要包括保本型理财产品以及非保本型理财产品,从发行规模看非保本型理财产品目前仍是主流.这类产品的预期收益往往直接受到市场流动性因素影响.因