如何让数据库在每天的某一个时刻自动执行某一个存储过程或者某一个sql语句

这就要涉及到代理的知识了哦,首先我们要启动代理服务。

我这里使用的sa帐号登录的咯。

这里的命令的意思是:将表dbo.MoneyBook中的UserId,MoneyCount,getdate()这个三个字段查询出来,然后在插入到表test中,这里的getdate()是获取当前的时间哈。

这里就是控制执行的周期了

命令的代码如下,我这里是使用了游标的哈,不明白的可以先找看点基础的教程哈

declare @userid int
declare @inter_money float
declare @date datetime
declare cur cursor
for SELECT UserId,MoneyCount,getdate()
    FROM dbo.MoneyBook

open cur
fetch next from cur into @userid,@inter_money,@date
while(@@fetch_status=0)
begin

insert into test(t_userid,t_money,t_date) values(@userid,@inter_money*0.01,@date)
fetch next from cur into @userid,@inter_money,@date
end
close cur
deallocate cur


表MoneyBook

CREATE TABLE [dbo].[MoneyBook](
    [MoneyId] [int] IDENTITY(1,1) NOT NULL,
    [UserId] [int] NULL,
    [MoneyCount] [float] NULL,
    [MoneyData] [datetime] NULL,
    [TypeId] [int] NULL,
    [StartDate] [datetime] NULL,
    [EndDate] [datetime] NULL,
    [SaveDays] [int] NULL,
    [Remark] [text] COLLATE Chinese_PRC_CI_AS NULL,
 CONSTRAINT [PK_Money] PRIMARY KEY CLUSTERED 
(
    [MoneyId] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用户的Id' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'MoneyBook', @level2type=N'COLUMN', @level2name=N'UserId'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'存入金额' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'MoneyBook', @level2type=N'COLUMN', @level2name=N'MoneyCount'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'存入时间' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'MoneyBook', @level2type=N'COLUMN', @level2name=N'MoneyData'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'存钱的类型,0表示自己存钱;1表示自己取钱;2表示会员返利' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'MoneyBook', @level2type=N'COLUMN', @level2name=N'TypeId'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'存钱开始时间' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'MoneyBook', @level2type=N'COLUMN', @level2name=N'StartDate'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'存钱的结束时间' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'MoneyBook', @level2type=N'COLUMN', @level2name=N'EndDate'

GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'存钱的天数' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'MoneyBook', @level2type=N'COLUMN', @level2name=N'SaveDays'

我的表中是有数据的哈

表test

CREATE TABLE [dbo].[test](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [t_money] [float] NULL,
    [t_userid] [int] NULL,
    [t_date] [datetime] NULL,
 CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED 
(
    [id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

这是执行了作业后的效果图哈

若有没有描述清楚的地方,或者有误的地方请指点出来,大家互相学习学习。技术重在交流

dbo.MoneyBook

posted @ 2015-11-19 22:37  风琴~云淡  阅读(899)  评论(0编辑  收藏  举报