17 个解决方案
#1
是分号 打错了
#2
最好加上,试试不加的时候定义一些变量看看,写的复杂些。
#3
没什么区别
#4
个人感觉没什么区别
#5
分号是良好的编程习惯,建议从现在开始启用这个习惯
部分语句,比如CTE要求前面语句有分号,这是趋势,以后可能会要求所有语句有分号。
部分语句,比如CTE要求前面语句有分号,这是趋势,以后可能会要求所有语句有分号。
#6
分号就没啥了。。。
#7
这个 是说 begin end 。。
#8
没有么?我在我存储过程里end后面去掉了俩分号,然后游标后的while循环就不执行了
#9
良好的变成习惯告诉你,要加上begin end
#10
具体的语句。。
#11
应该是我错了,重启下服务就好了
#12
#13
嘿嘿
#14
亲爱的姐姐、为什么我游标里取出的最后一组值在循环里会执行两遍、前面几组值没问题,就是最后一组值会执行两遍
#15
CREATE PROCEDURE pro_paper_auto_make(
@p_plan_id int,
@p_paper_id int,
@p_pool_id int,
@p_pool_id2 int,
@p_pool_id3 int,
@p_pool_id4 int,
@p_pool_id5 int,
@p_login_user_id varchar(32)
)
as
begin
--定义的变量不列出了
DECLARE cur_plan_detail cursor for
select
c.question_no_b,c.point_per, c.difficult_y,c.difficult_z,c.difficult_n,c.type
from t_test_plan a,t_test_paper_question_b c
where a.id = c.plan_id
and a.id = @p_plan_id
order by question_no_b
;
open cur_plan_detail;
fetch next from cur_plan_detail into @v_question_no_b,@v_point_per,@v_difficult_y,@v_difficult_z,@v_difficult_n,@v_question_type;
while(@@fetch_status=0)
begin
fetch next from cur_plan_detail into @v_question_no_b,@v_point_per,@v_difficult_y,@v_difficult_z,@v_difficult_n,@v_question_type;
if @@FETCH_STATUS <>0
begin
close cur_plan_detail
end
--业务逻辑
end;
close cur_plan_detail;
deallocate cur_plan_detail;
end;
#16
没加过。。。
#17
以前在oracle写sql喜欢加分号, sql server 加分号有时候喜欢报错.
#1
是分号 打错了
#2
最好加上,试试不加的时候定义一些变量看看,写的复杂些。
#3
没什么区别
#4
个人感觉没什么区别
#5
分号是良好的编程习惯,建议从现在开始启用这个习惯
部分语句,比如CTE要求前面语句有分号,这是趋势,以后可能会要求所有语句有分号。
部分语句,比如CTE要求前面语句有分号,这是趋势,以后可能会要求所有语句有分号。
#6
分号就没啥了。。。
#7
这个 是说 begin end 。。
#8
没有么?我在我存储过程里end后面去掉了俩分号,然后游标后的while循环就不执行了
#9
良好的变成习惯告诉你,要加上begin end
#10
具体的语句。。
#11
应该是我错了,重启下服务就好了
#12
#13
嘿嘿
#14
亲爱的姐姐、为什么我游标里取出的最后一组值在循环里会执行两遍、前面几组值没问题,就是最后一组值会执行两遍
#15
CREATE PROCEDURE pro_paper_auto_make(
@p_plan_id int,
@p_paper_id int,
@p_pool_id int,
@p_pool_id2 int,
@p_pool_id3 int,
@p_pool_id4 int,
@p_pool_id5 int,
@p_login_user_id varchar(32)
)
as
begin
--定义的变量不列出了
DECLARE cur_plan_detail cursor for
select
c.question_no_b,c.point_per, c.difficult_y,c.difficult_z,c.difficult_n,c.type
from t_test_plan a,t_test_paper_question_b c
where a.id = c.plan_id
and a.id = @p_plan_id
order by question_no_b
;
open cur_plan_detail;
fetch next from cur_plan_detail into @v_question_no_b,@v_point_per,@v_difficult_y,@v_difficult_z,@v_difficult_n,@v_question_type;
while(@@fetch_status=0)
begin
fetch next from cur_plan_detail into @v_question_no_b,@v_point_per,@v_difficult_y,@v_difficult_z,@v_difficult_n,@v_question_type;
if @@FETCH_STATUS <>0
begin
close cur_plan_detail
end
--业务逻辑
end;
close cur_plan_detail;
deallocate cur_plan_detail;
end;
#16
没加过。。。
#17
以前在oracle写sql喜欢加分号, sql server 加分号有时候喜欢报错.