请教各位老大怎么做一个触发器定时更改一个表数据!(在线等,分虽不多但解决立马给分!)

zanglinfeng 2004-06-10 11:12:58
由于我SQLSERVER刚学不久,触发器不怎么懂!比如说有一个表table_a 有一个字段flag,可能值是A和B或者为空,我怎样做可以在晚上10点整(22:00:00)定时把其值为B的全改为A呢?
是不是右击表table_a后-->所有工作-->管理触发程序,在里面写
(这么操作对不对?)
CREATE TRIGGER updater ON [dbo].[table_a]
FOR UPDATE
AS
update table_a
set flag='A'
where flag='B'
...................
时间限制怎么写就不会了.各位老大帮忙啊, 最好代码详细啊!谢谢了!
只剩下100多分了,还要问几个问题的,所以只能给这么多分了!
...全文
51 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cywarson 2004-06-10
调用一个JOB就可搞掂.(如上所述)
回复
pjy 2004-06-10
你这那是触发器的问题,你需要建一个JOB!
回复
netcoder 2004-06-10
触发器没有这个功能,要用作业
下面有个例子,你只需要修改一下你需要定时执行的sql语句为:
update table_a
set flag='A'
where flag='B'
创建作业的例子

目的:创建一个作业myJob,每天23:00清空test数据库中的test表

方法一、使用企业管理器
步骤:

展开服务器组,然后展开服务器。

展开"管理",然后展开"SQL Server 代理程序"。

右击"作业",然后单击"新建作业"命令。

在"名称"框中输入作业的名称,这里输入“myJOB”。

如果不希望作业在创建后立即运行,则清除"启用"复选框。例如,如果要在按计划运行之前测试某个作业,则禁用该作业。

打开“步骤”属性页,点击"新建",输入名称"Step_1",在,选择test数据库,在命令文本输入框中输入
delete from test ,点击应用。

打开 “调度”属性页,新建立一个调度”schedule_1“为作业指定反复执行的方式,执行时间为每天23:00。

最后,点击“应用”,保存推出。

注意,设置了作业后,要将sqlagent服务设置为自动启动,否则作业不会执行.
设置方法:

我的电脑--控制面板--管理工具--服务--右键"SQLSERVERAGENT"--属性--启动类型,选择"自动"--确定
个设置要在重新启动操作系统时,才会生效,所以在重新启动之前,你要点启动按纽先启动它

二、使用查询分析器
如果用sql语句建立以上作业:

USE msdb

EXEC sp_add_job @job_name = 'myJOB'

EXEC sp_add_jobstep @job_name = 'myJOB',
@step_name = 'Step_1',
@subsystem = 'TSQL',
@command = 'delete test'


EXEC sp_add_jobschedule @job_name = 'myJOB',
@name = 'Schedule_1',
@freq_type = 4, -- 每天
@freq_interval = 1, --间隔
@active_start_time = 230000 --23点


回复
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2004-06-10 11:12
社区公告
暂无公告