declare @check_student_id char(20)
declare @get_borrow_data datetime
declare @pass_data int
declare @get_borrow_data datetime
declare @pass_data int
解决方案 »
- 本地计算机上的SQLSERVERAGENT 服务启动后又停止了 一些服务自动停止,如果它们没有什么可以做的,例如"性能日志和警报"
- 求一条SQL语句生成把表中字段名的描述变成对应的字段名
- 请教关系图级联删除的问题...
- 如何搜索关键字及url
- 请教一个关于Excel向sqlserver导入数据的问题,谢过各位了!
- 如何在存储过程返回的结果集中做查找,如:select top 1 * from mystoreprocedure
- 如何批量更新数据库字段的一部分?
- SQL有用吗?
- 行转列,很有用的东西
- 请教邹建,关于asp上传文件的程序
- SQLserver数据错位!!!
- 第二个事务分发 没有 "日志读取器"
AS
DECLARE borrow_nowed_rs CURSOR FOR
SELECT student_id FROM borrow where 30 < datediff(day,borrow_data,getdate())
declare @check_student_id char(20)
open borrow_nowed_rs
FETCH NEXT FROM borrow_nowed_rs into @check_student_id
WHILE @@FETCH_STATUS = 0
BEGIN
update student
set student_nowed = student_nowed +0.1
where student_id = @check_student_id
FETCH NEXT FROM borrow_nowed_rs into @check_student_id
END
CLOSE borrow_nowed_rs
DEALLOCATE borrow_nowed_rs这个是我昨天已经实现的功能,今天我想按超过的天数来对student_nowed赋值,搞了半天就是不行。
declare @get_borrow_data datetime
declare @pass_data int 也是提示一样错误,本来我就是这样定义的。
改成:
declare @pass_data int = datediff(day,@get_borrow_data,getdate())-30
提示错误:
服务器: 消息 139,级别 15,状态 1,过程 check_student_nowed,行 12
不能向局部变量赋予默认值。删除:
declare @pass_data int = datediff(day,@get_borrow_data,getdate())-30
编译通过
AS
DECLARE borrow_nowed_rs CURSOR FOR
SELECT student_id,borrow_data FROM borrow where 30 < datediff(day,borrow_data,getdate())
declare @check_student_id char(20),@get_borrow_data datetime,@pass_data int
open borrow_nowed_rs
FETCH NEXT FROM borrow_nowed_rs into @check_student_id,@get_borrow_data
WHILE @@FETCH_STATUS = 0
BEGIN
set @pass_data = datediff(day,@get_borrow_data,getdate())-30
update student
set student_nowed = @pass_data*0.1
where student_id = @check_student_id
FETCH NEXT FROM borrow_nowed_rs into @check_student_id,@get_borrow_data
END
CLOSE borrow_nowed_rs
DEALLOCATE borrow_nowed_rs
我的问题解决了
语句块每本书上都不同,郁闷