首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Sql话语 循环调用存储过程 设置1秒执行一次

2012-08-07 
Sql语句循环调用存储过程 设置1秒执行一次!一个日结的存储过程P_Wms_StockDailyState 参数是格式是yyyy-M

Sql语句 循环调用存储过程 设置1秒执行一次!
一个日结的存储过程P_Wms_StockDailyState 参数是格式是'yyyy-MM-dd'

这个存储过程必须一天结算一次!比如在每天的几点几时几分执行这个存储过程!

现在呢 想把之前的也执行掉!意思就是  

我从 2012-5-1 开始 执行到 今天之前的2012-7-23 设置1秒执行一次!

当执行到今天之前后停止! 后面 就是一天的某个时间 点执行一次!  



[解决办法]
你是说参数一秒一次还是说一秒执行一次存储过程,参数是每天的日期?

如果是后者,为什么需要限制时间呢?如果1秒内执行不完如何处理?
直接循环执行,执行好一天后,日期加1再执行第二次不就行了?这样一直执行到2012-7-23时停止
[解决办法]

SQL code
declare @dt varchar(30),@today varchar(30)select @dt ='2012-05-01',@today=left(convert(varchar(30),getdate(),120),10)while @dt<@todaybegin    exec P_Wms_StockDailyState @dt    set @dt=left(convert(varchar(30),DATEADD(day,1,@dt),120),10)    waitfor delay '00:00:01'end--是这个意思么
[解决办法]
SQL code
--测试结果:declare @dt varchar(30),@today varchar(30)select @dt ='2012-05-01',@today=left(convert(varchar(30),getdate(),120),10)while @dt<@todaybegin    exec P_Wms_StockDailyState @dt    set @dt=left(convert(varchar(30),DATEADD(day,1,@dt),120),10)    waitfor delay '00:00:01'end--输出:exec P_Wms_StockDailyState '2012-05-01'exec P_Wms_StockDailyState '2012-05-02'exec P_Wms_StockDailyState '2012-05-03'exec P_Wms_StockDailyState '2012-05-04'exec P_Wms_StockDailyState '2012-05-05'exec P_Wms_StockDailyState '2012-05-06'exec P_Wms_StockDailyState '2012-05-07'exec P_Wms_StockDailyState '2012-05-08'exec P_Wms_StockDailyState '2012-05-09'exec P_Wms_StockDailyState '2012-05-10'exec P_Wms_StockDailyState '2012-05-11'exec P_Wms_StockDailyState '2012-05-12'exec P_Wms_StockDailyState '2012-05-13'exec P_Wms_StockDailyState '2012-05-14'exec P_Wms_StockDailyState '2012-05-15'exec P_Wms_StockDailyState '2012-05-16'exec P_Wms_StockDailyState '2012-05-17'exec P_Wms_StockDailyState '2012-05-18'exec P_Wms_StockDailyState '2012-05-19'exec P_Wms_StockDailyState '2012-05-20'exec P_Wms_StockDailyState '2012-05-21'exec P_Wms_StockDailyState '2012-05-22'exec P_Wms_StockDailyState '2012-05-23'exec P_Wms_StockDailyState '2012-05-24'exec P_Wms_StockDailyState '2012-05-25'exec P_Wms_StockDailyState '2012-05-26'exec P_Wms_StockDailyState '2012-05-27'exec P_Wms_StockDailyState '2012-05-28'exec P_Wms_StockDailyState '2012-05-29'exec P_Wms_StockDailyState '2012-05-30'exec P_Wms_StockDailyState '2012-05-31'exec P_Wms_StockDailyState '2012-06-01'exec P_Wms_StockDailyState '2012-06-02'exec P_Wms_StockDailyState '2012-06-03'exec P_Wms_StockDailyState '2012-06-04'exec P_Wms_StockDailyState '2012-06-05'exec P_Wms_StockDailyState '2012-06-06'exec P_Wms_StockDailyState '2012-06-07'exec P_Wms_StockDailyState '2012-06-08'exec P_Wms_StockDailyState '2012-06-09'exec P_Wms_StockDailyState '2012-06-10'exec P_Wms_StockDailyState '2012-06-11'exec P_Wms_StockDailyState '2012-06-12'exec P_Wms_StockDailyState '2012-06-13'exec P_Wms_StockDailyState '2012-06-14'exec P_Wms_StockDailyState '2012-06-15'exec P_Wms_StockDailyState '2012-06-16'exec P_Wms_StockDailyState '2012-06-17'exec P_Wms_StockDailyState '2012-06-18'exec P_Wms_StockDailyState '2012-06-19'exec P_Wms_StockDailyState '2012-06-20'exec P_Wms_StockDailyState '2012-06-21'exec P_Wms_StockDailyState '2012-06-22'exec P_Wms_StockDailyState '2012-06-23'exec P_Wms_StockDailyState '2012-06-24'exec P_Wms_StockDailyState '2012-06-25'exec P_Wms_StockDailyState '2012-06-26'exec P_Wms_StockDailyState '2012-06-27'exec P_Wms_StockDailyState '2012-06-28'exec P_Wms_StockDailyState '2012-06-29'exec P_Wms_StockDailyState '2012-06-30'exec P_Wms_StockDailyState '2012-07-01'exec P_Wms_StockDailyState '2012-07-02'exec P_Wms_StockDailyState '2012-07-03'exec P_Wms_StockDailyState '2012-07-04'exec P_Wms_StockDailyState '2012-07-05'exec P_Wms_StockDailyState '2012-07-06'exec P_Wms_StockDailyState '2012-07-07'exec P_Wms_StockDailyState '2012-07-08'exec P_Wms_StockDailyState '2012-07-09'exec P_Wms_StockDailyState '2012-07-10'exec P_Wms_StockDailyState '2012-07-11'exec P_Wms_StockDailyState '2012-07-12'exec P_Wms_StockDailyState '2012-07-13'exec P_Wms_StockDailyState '2012-07-14'exec P_Wms_StockDailyState '2012-07-15'exec P_Wms_StockDailyState '2012-07-16'exec P_Wms_StockDailyState '2012-07-17'exec P_Wms_StockDailyState '2012-07-18'exec P_Wms_StockDailyState '2012-07-19'exec P_Wms_StockDailyState '2012-07-20'exec P_Wms_StockDailyState '2012-07-21'exec P_Wms_StockDailyState '2012-07-22'exec P_Wms_StockDailyState '2012-07-23' 


[解决办法]

SQL code
declare @dt varchar(30),@today varchar(30)select @dt ='2012-05-01',@today=left(convert(varchar(30),getdate(),120),10)while @dt<@todaybegin    print 'exec P_Wms_StockDailyState '''+@dt+''''    set @dt=left(convert(varchar(30),DATEADD(day,1,@dt),120),10)    --waitfor delay '00:00:01'end--上面帖错了
[解决办法]
用输出那个执行也可以啊。
[解决办法]
探讨
对的!但是为什么打印的数据都出来了!但是存储过程没有执行!

[解决办法]
这个你找到sqlserver代理,点开-》找到作业-》然后右击选择新建作业—》然后新建作业步骤-》再然后新建作业计划-》设置好后保存。

热点排行