当前位置:首页 » 编程语言 » sql作业可以设置执行频率
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql作业可以设置执行频率

发布时间: 2022-07-21 13:20:43

sqlserver2008 怎么让一条sql语句 每间隔10秒执行一次

办法有很多
比方说你编一个小程序,让sql语句每10秒执行一次
或者用批处理+sql脚本也可以
或者直接在sqlserver里面写存储过程执行,使用waitfor time函数

Ⅱ SqlServer如何设置每秒执行存储过程

  • 打开SQL Server Management Studio,SQL Server代理--作业--点右键--新建作业

  • 作业的名称取为:test

    并进行说明,若作业的数量太多,以方便区别;

    这里写上定时执行存储过程Pr_test

    确定保存.

  • 点击常规下面的步骤,按箭头指示,新建步骤.

  • 取名步骤名称:exec pr_test

    注意选择存储过程所在的数据库

    录入需要执行的命令:exec pr_test ,确定保存.

    若有其它参数命令也可以编写

  • 接下来设置计划,自动定时执行的时间.

    新建计划,进放计划属性设置窗口.

  • 6

    依然要填写计划的名称:exec pr_test

    计划类型:重复计划

    时间频率:每月的26日的12点30分自动执行一次

    持续时间:无结束日期

    确定保存.到此基本功能已经设置完成,额外其它功能可以根据需要进行增加.

Ⅲ 可以不可以 让sql 2008 每天自动执行一条语句

C:\Documents and Settings\Wang>osql /?
用法: osql [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w columnwidth]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-L list servers] [-c cmdend] [-D ODBC DSN name]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-n remove numbering] [-m errorlevel]
[-r msgs to stderr] [-V severitylevel]
[-i inputfile] [-o outputfile]
[-p print statistics] [-b On error batch abort]
[-X[1] disable commands [and exit with warning]]
[-O use Old ISQL behavior disables the following]
<EOF> 批处理
控制台宽度自动调整
宽消息
默认错误级别为 — 1 对 1
[-? show syntax summary]
osql -u 用户名 -p 密码 -s 服务器 -d 数据库名 -i sql文件
把你要执行的sql语句写好保存到一个文件里面,在把上句复制到一个文本文件里面,改成bat扩展名变成批处理文件,然后系统控制面板里面有个计划任务,把批处理文件加到计划任务里面,这个比较麻烦,简单点的是sql企业管理器里面有个作业管理,在sql agent里面,启用sqlagent服务,里面的作业就可以自动按时间调度了

Ⅳ sql 每隔一段时间执行新增语句

每隔一段时间进行一操作(执行新增语句),可以用“作业”去做。

UPDATE就是一个作业,每天自动备份数据库。

作业就是执行每天、每间隔10分钟、每周1到周五、每个月第一天这样的频率去重复做一件事的意思,你可以理解成在智能手机中设置闹钟,只不多在数据库中,不是响铃,而是执行sql脚本(sql语句、存储过程等等)

Ⅳ sql server 过程怎么可以一个月执行一次

写个存储过程(sql语句),然后新建个作业(Job)来调用这个它
job的周期为一个月

Ⅵ 如何让sql每天执行一下一个写好的sql语句

可以设置定时任务,比较常用的是用sqlserver 代理新建作业。有时候数据库自动备份也是用的这个。
还有一种比较复杂自己写个程序,使用系统定时任务 定时执行。
创建sql server定时任务作业步骤如下:
1.要先安装了sqlserver 代理服务
--2.鼠标右击【SQL Server 代理】,选择【启动(S)】,如已启动,可以省略此步骤;
--3.展开【SQL Server 代理】列表,右击【作业】--【新建作业】;
--3.1 在【常规】选项卡中:
-- 输入作业名称,如My Job;
--3.2 在【步骤】选项卡中:
--3.2.1 点击【新建】,输入【步骤名称】,如步骤1,类型默认T-SQL脚本,也可以选择SSIS包等;
--3.2.2 在【数据库】一栏选择要作业处理的数据库,在【命令】的右边空白编辑栏输入要执行的SQL代码,
EXEC p_Name --如:执行一个P_Name的存储过程
-- 也可以点击命令下面的【打开】,打开.sql脚本;
--3.2.3 输入运行脚本后,建议点击【分析】,确保脚本语法正确,然后点击下面的【确定】按钮;
--3.3 在【计划】选项卡中:
--3.3.1 点击【新建】,输入【计划名称】,如计划1,计划类型默认是重复执行,也可以选择执行一次等;
--3.3.2 在【频率】--【执行】处选择每天、每周或每月,以每天为例,间隔时间输入间隔几天执行一次,
-- 下面还可以选择每天一次性执行或间隔一定的时间重复执行
--3.3.3 在【持续时间】中选择计划开始执行的【起始日期】和【截止日期】,然后点击【确定】按钮;
--注意要将服务设置为自动启动,否则在重启服务器后作业就不运行了。
--启动代理服务的方法:
--开始--运行--输入services.msc--找到【SQL Server 代理】的服务并双击--【启动类型】选择自动--【确定】
--至此,定时作业已创建完毕。

Ⅶ sql2008怎么设置计划任务

用作业,放入SQL代码,设置执行频率即可

Ⅷ sql server 里面的作业格式是什么,应该怎么写,怎么使用

sql server作业用法

一.作业的运用(自动更新db)

1、 打开sql server的企业管理器,找到管理中的作业

2、 新增一个作业,将具体的设置进行设定,新增步骤以确定要处理的sp及sql语句

新增调度以确定要执行的频率!
3、例子

二.处理SP及其它sql语句以进行作业处理(运用数据仓库的模式)

1、 创建要进行保存数据的空间(一般为表)

2、 运用作业进行数据填充

3、 通过存的数据进行数据呈现

三.具体示例

1、 创建表

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[r_Count1]')

and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[r_Count1]

GO

CREATE TABLE [dbo].[r_Count1] (

[UnitCoding] [varchar] (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[StatDate] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[Field1] [int] NOT NULL ,

[Field2] [int] NOT NULL ,

[Field3] [int] NOT NULL ,

[Field4] [int] NOT NULL ,

[Field5] [int] NOT NULL ,

[Field6] [int] NOT NULL ,

[Field7] [int] NOT NULL ,

[Field8] [int] NOT NULL ,

[Field9] [int] NOT NULL ,

[Field10] [int] NOT NULL ,

[Field11] [int] NOT NULL ,

[Field12] [int] NOT NULL ,

[Field13] [int] NOT NULL ,

[Field14] [int] NOT NULL ,

[Field15] [int] NOT NULL ,

[Field16] [int] NOT NULL ,

[Field17] [int] NOT NULL ,

[Field18] [int] NOT NULL

) ON [PRIMARY]

GO

2、 处理数据(运用作业的sp)

ALTER PROCEDURE AutoExec_Count1

(

@UnitCoding varchar(20),

@StatDate datetime

)

AS

/* 向临时表中插入要变更单位的新旧单位代码 */

Declare @i_SFirstdate varchar(10)

Declare @i_EFirstdate varchar(10)

Declare @i_SSeconddate varchar(10)

Declare @i_ESeconddate varchar(10)

Declare @i_getdate datetime

Select @i_getdate = @StatDate

Select @i_SFirstdate=dbo.u_Date2Char(DATEADD(mm,DATEDIFF(mm,0,@i_getdate),0))--当月第1天

Select @i_EFirstdate=dbo.u_Date2Char(DATEADD(dd,14,DATEADD(mm,DATEDIFF(mm,0,@i_getdate),0))) --当月第15天

Select @i_SSeconddate=dbo.u_Date2Char(DATEADD(dd,15,DATEADD(mm,DATEDIFF(mm,0,@i_getdate),0))) --当月第16天

Select @i_ESeconddate=dbo.u_Date2Char(DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,@i_getdate)+1,0))) --当月最后1天

/* 启动事务 */

Begin transaction

/* 创建用于保存单位代码和报表周期的临时表 */

Create Table #TblUnitDateSwap

(

NumberID int IDENTITY (1, 1) NOT NULL ,

UnitCoding varchar(20),

startdate varchar(10),

enddate varchar(10)

)

/* 向临时表中插入单位数据 */

Select @UnitCoding = RTrim(@UnitCoding) + '%' --

--插入上半月统计日期(例:2004-1-1~2004-1-15)

Insert Into #TblUnitDateSwap(UnitCoding,startdate,enddate)

Select UnitCoding,@i_SFirstdate,@i_EFirstdate

From m_Units Where Len(UnitCoding)=12 And (UnitCoding Like @UnitCoding)

--插入下半月统计日期(例:2004-1-16~2004-1-31)

Insert Into #TblUnitDateSwap(UnitCoding,startdate,enddate)

Select UnitCoding,@i_SSeconddate,@i_ESeconddate

From m_Units Where Len(UnitCoding)=12 And (UnitCoding Like @UnitCoding)

--插入整月统计日期(例:2004-1-1~2004-1-31)

Insert Into #TblUnitDateSwap(UnitCoding,startdate,enddate)

Select UnitCoding,@i_SSeconddate,@i_ESeconddate

From m_Units Where Len(UnitCoding)=12 And (UnitCoding Like @UnitCoding)

/*插入存储过程开始执行时间(正式执行时屏蔽此功能)*/

INSERT INTO r_ExecTime(UnitCoding,ExecName) VALUES(@UnitCoding,'START')

Declare @errorcode int

Declare @i_UnitCoding varchar(20)

Declare @i_startdate varchar(10)

Declare @i_enddate varchar(10)

/* 统计插入临时表中的记录数 */

Declare @v_TempTableCount int

Select @v_TempTableCount = count(*) From #TblUnitDateSwap

Declare @i integer -- 定义一个临时循环变量

Select @i=1 -- 初始化临时变量为1

--循环每个基层单位(单位代码长度为12),将统计值保存到r_Count对应表中

While(@i <= @v_TempTableCount) -- 执行循环的条件为临时变量<=临时表记录数

Begin -- w01

Select @i_UnitCoding = UnitCoding,@i_startdate = startdate,@i_enddate = enddate

From #TblUnitDateSwap

Where NumberID = @i

If Not Exists (Select * From r_Count1 Where UnitCoding = @i_UnitCoding And StatDate = @i_startdate)

Begin

INSERT INTO r_Count1

EXEC ('dbo.sp_Count1_Auto_New '+@i_UnitCoding+','+@i_startdate+','+@i_enddate)

End

Else--如果存在已统计的记录,则删除该记录,重新插入最新统计记录(为提高效率,可以屏蔽此功能)

Begin

Delete From r_Count1 Where UnitCoding = @i_UnitCoding And StatDate = @i_startdate

INSERT INTO r_Count1

EXEC ('dbo.sp_Count1_auto '+@i_UnitCoding+','+@i_startdate+','+@i_enddate)

End

--获得错误代码值

Select @errorcode=@@error

/*** 临时循环变量自增1*/

Select @i=@i+1

End -- w01

/*插入存储过程开始执行时间(正式执行时屏蔽此功能)*/

INSERT INTO r_ExecTime(UnitCoding,ExecName) VALUES(@UnitCoding,'END')

/*

--调试执行循环次数

Declare @jj varchar(10)

Select @jj = convert(varchar(10),@i)

Print '执行次数:'+@jj

*/

/* 删除临时表 */

Drop Table #TblUnitDateSwap

If(@errorcode = 0)

Begin

Commit Transaction

End

Else

Begin

Rollback Transaction

End

RETURN

3、 挖掘数据

Create PROCEDURE dbo.sp_Count1_Auto_New

(

@Unitcoding varchar(20),

@startdate char(8) ,

@enddate char(8)

)

AS

declare @length integer

declare @len integer

select @length=len(@Unitcoding)

if @length = 4 or @length = 2

begin

select @len=2

end

else if @length = 12

begin

select @len=0

end

else

begin

select @len=3

end

select @Unitcoding As UnitCoding,

@startdate As StatDate,

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,99,99,99,0,99,99,99,0),

dbo.getFCount_inout(Unitcoding,@startdate,@enddate,99,99,99,0,99,99,99,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,99,0,99,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,1,0,99,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,99,0,99,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,1,0,99,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,99,1,0,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,1,1,0,0) ,

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,99,1,0,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,1,1,0,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,99,1,1,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,1,1,1,0) ,

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,99,1,1,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,1,1,1,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,99,99,99,1,99,99,99,0),

dbo.getFCount_inout(Unitcoding,@startdate,@enddate,99,99,99,1,99,99,99,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,1,1,1,99,99,99,0),

dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,1,1,1,1,99,99,0)

from m_units

where Unitcoding like @Unitcoding + '%' and len(Unitcoding) = len(@Unitcoding) + @len

RETURN

4、 数据分析显示

Select dbo.getUnitName(Left(UnitCoding,@v_Len)) As '单位名称',

Sum(Field1),

Sum(Field2),

Sum(Field3),

Sum(Field4),

Sum(Field5),

Sum(Field6),

Sum(Field7),

Sum(Field8),

Sum(Field9),

Sum(Field10),

Sum(Field11),

Sum(Field12),

Sum(Field13),

Sum(Field14),

Sum(Field15)

From dbo.u_Count1_Report_New(@Unitcoding,@startdate,@enddate)

Group By Left(UnitCoding,@v_Len),dbo.getUnitName(Left(UnitCoding,@v_Len))

Order By Left(UnitCoding,@v_Len),dbo.getUnitName(Left(UnitCoding,@v_Len))

/*function表

Create FUNCTION dbo.u_Count1_Report_New

(

@Unitcoding varchar(20),

@startdate char(8) ,

@enddate char(8)

)

RETURNS @r_Count1 TABLE

(

UnitCoding varchar (20),

--StatDate varchar(10),

Field1 int NOT NULL ,

Field2 int NOT NULL ,

Field3 int NOT NULL ,

Field4 int NOT NULL ,

Field5 int NOT NULL ,

Field6 int NOT NULL ,

Field7 int NOT NULL ,

Field8 int NOT NULL ,

Field9 int NOT NULL ,

Field10 int NOT NULL ,

Field11 int NOT NULL ,

Field12 int NOT NULL ,

Field13 int NOT NULL ,

Field14 int NOT NULL ,

Field15 int NOT NULL ,

Field16 int NOT NULL ,

Field17 int NOT NULL ,

Field18 int NOT NULL

)

AS

BEGIN

declare @length integer

declare @v_Len integer

select @length=len(@Unitcoding)

Select @v_Len = 12

INSERT @r_Count1

Select Left(UnitCoding,@v_Len) As UnitCoding,

--StatDate,

Max(Field1) As Field1,

max(dbo.GetOneMonth1(Left(UnitCoding,@v_Len),@startdate,@enddate,0)) As Field2,

Max(Field3) As Field3,

Max(Field4) As Field4,

Max(Field5) As Field5,

Max(Field6) As Field6,

Max(Field7) As Field7,

Max(Field8) As Field8,

Max(Field9) As Field9,

Max(Field10) As Field10,

Max(Field11) As Field11,

Max(Field12) As Field12,

Max(Field13) As Field13,

Max(Field14) As Field14,

Max(Field15) As Field15,

max(dbo.GetOneMonth1(Left(UnitCoding,@v_Len),@startdate,@enddate,1)) As Field16,

Max(Field17) As Field17,

Max(Field18) As Field18

From r_Count1

Where StatDate >=@startdate And StatDate <=@enddate

And UnitCoding Like @Unitcoding + '%'

Group By Left(UnitCoding,@v_Len)

Order By Left(UnitCoding,@v_Len)

RETURN

END

Ⅸ 在SQL SERVER 2000中建立一个作业,定时执行一次。

举个定时备份的例子: --建立一个作业! 企业管理器 --管理 --SQL Server代理 --右键作业 --新建作业 --"常规"项中输入作业名称 --"步骤"项 --新建 --"步骤名"中输入步骤名 --"类型"中选择"Transact-SQL 脚本(TSQL)" --"数据库"选择执行命令的数据库 --"命令"中输入要执行的语句: backup database database1 to disk='c:\备份文件名.bak' --确定 --"调度"项 --新建调度 --"名称"中输入调度名称 --"调度类型"中选择你的作业执行安排 --如果选择"反复出现" --点"更改"来设置你的时间安排 然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行