执行Sqlserver中waitfor delay延时操作或waitfor time定时操作

private static string connectionString = RBAC.Dal.DataRootBase.ConnectionString;
private SqlConnection mConnection = new SqlConnection(connectionString);

#region
/// <summary>
/// 当点击执行查询时发生(异步操作)
/// 执行数据库waitfor delay延时存储过程
/// 或者waitfor time定时存储过程
/// </summary>
private void Button_DoSearch_Click(object sender, EventArgs e)
{
SqlCommand command = new SqlCommand("pro_StoreDelay", mConnection);
command.CommandType = CommandType.StoredProcedure;
mConnection.Open();
AsyncCallback callBack = new AsyncCallback(HandleCallback);//注册回调方法
//开始执行异步查询,将Command作为参数传递到回调函数以便执行End操作
command.BeginExecuteReader(callBack, command); //异步查询 回调
//command.BeginExecuteNonQuery(null, command); //直接执行 无回调
}
#endregion

#region
/// <summary>
/// 异步查询的回调方法
/// </summary>
/// <param name="MyResult">异步操作状态</param>
private void HandleCallback(IAsyncResult MyResult)
{
try
{
//SqlCommand command = (SqlCommand)MyResult.AsyncState;
//SqlDataReader reader = command.EndExecuteReader(MyResult);
//DataTable dataTable = new DataTable();
//dataTable.Load(reader);
//reader.Dispose();
//command.Dispose();
}
catch (Exception ex)
{
}
finally
{
if (mConnection != null)
{
mConnection.Close();  //回调后关闭连接
}
}
}
#endregion

SQL有定时执行的语句 WaitFor,可以写到一个存储过程中再执行一次
语法:WaitFor{Delay 'time'|Time 'time}
Delay后面的时间为延迟多少时间执行
Time后面的时间为指定何时执行,格式为"HH:MM:SS",不支持日期
例:
------指定10:00执行
Begin
waitfor time '10:00'
select * from tablename
end
-----指定等待1小时后执行
begin
waitfor delay '1:00'
select * from tablename
end
dbms_lock.sleep(n)暂停n秒后执行
一般这个包都会创建,但是权限不是默认就赋予的;还有一个重要的步骤是要给用户all on dbms_lock 权限。。
在DBA身分下
grant execute on dbms_lock to USERNAME;
放到存贮过程里



1.WAITFOR

--WAITFOR

--例 等待1 小时2 分零3 秒后才执行SELECT 语句

waitfor delay '01:02:03'

select * from employee

--例 等到晚上11 点零8 分后才执行SELECT 语句

waitfor time '23:08:00'

select * from employee



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值