游标是动态的,请问有什么解决方案?
我要使用游标,例子入下:
declare tmp_cursor cursor for select 1 from tablename
declare @i int
open cursor_insert
fetch cursor_insert into @i
while @@fetch_status=0
begin
print @i
fetch tmp_cursor into @i
end
close tmp_cursor
deallocate tmp_cursor
但是tablename却是动态的,也就是说tablename这个表是可变的,而且
会加上别的"WHERE"条件,或者"Order"条件。我该如何实现,注意:一定要使用游标,因为我要做计算。
问题点数:100、回复次数:12Top
1 楼CrazyFor(冬眠的鼹鼠)回复于 2003-12-03 17:52:43 得分 40
EXEC('
declare tmp_cursor cursor for select 1 from '+@tablename+'
declare @i int
open cursor_insert
fetch cursor_insert into @i
while @@fetch_status=0
begin
print @i
fetch tmp_cursor into @i
end
close tmp_cursor
deallocate tmp_cursor')
Top
2 楼rickywei(蓝火)回复于 2003-12-03 18:02:53 得分 0
你的写法很奇怪,不知道你自己试验过没有。呵呵。要是能通过我给你加200分Top
3 楼leimin(黄山光明顶)回复于 2003-12-03 18:04:34 得分 0
你是否可以将要建立CURSOR的表保存导一个表中,在通过脚本调用回比较好。Top
4 楼leimin(黄山光明顶)回复于 2003-12-03 18:05:47 得分 0
楼主你自己的脚本也很奇怪??
declare tmp_cursor cursor for select 1 from tablename
declare @i int
open cursor_insert --???
fetch cursor_insert into @i ---???
while @@fetch_status=0
begin
print @i
....
Top
5 楼youngby(C-love)回复于 2003-12-03 18:09:25 得分 0
markTop
6 楼rickywei(蓝火)回复于 2003-12-03 18:12:33 得分 0
你还真行, CrazyFor(冬眠的鼹鼠) 的方法确实可以,只不过好像比较笨,不知道各位还有没有更加好的方式?谢谢CrazyFor(冬眠的鼹鼠) ,结贴时给你加分Top
7 楼pengdali()回复于 2003-12-03 18:19:36 得分 40
exec('declare tmp_cursor cursor for select 1 from tablename')
declare @i int
open cursor_insert
fetch cursor_insert into @i
while @@fetch_status=0
begin
print @i
fetch tmp_cursor into @i
end
close tmp_cursor
deallocate tmp_cursorTop
8 楼pengdali()回复于 2003-12-03 18:20:03 得分 0
EXEC('declare tmp_cursor cursor for select 1 from '+@tablename)
declare @i int
open cursor_insert
fetch cursor_insert into @i
while @@fetch_status=0
begin
print @i
fetch tmp_cursor into @i
end
close tmp_cursor
deallocate tmp_cursorTop
9 楼rickywei(蓝火)回复于 2003-12-03 19:00:35 得分 0
thanks.问题解决Top
10 楼rickywei(蓝火)回复于 2003-12-03 19:00:36 得分 0
thanks.问题解决Top
11 楼Arionma()回复于 2003-12-03 19:15:15 得分 5
关键点就是读取动态表时必须用下面的格式
exec('语句'+表名)Top
12 楼binshan(Aben)回复于 2003-12-03 20:00:41 得分 15
EXEC('declare tmp_cursor cursor for select 1 from '+@tablename)
declare @i int
open cursor_insert ---看不明cursor_insert是什么?
fetch cursor_insert into @i ---看不明cursor_insert是什么?
while @@fetch_status=0
begin
print @i
fetch tmp_cursor into @i
end
close tmp_cursor
deallocate tmp_cursor
请教cursor_insert是什么?
Top




