关于游标(20分)

  • 主题发起人 主题发起人 liuguilg
  • 开始时间 开始时间
L

liuguilg

Unregistered / Unconfirmed
GUEST, unregistred user!
表t2
s1 char(10), s2 char(10)
我想通过s1来查询出s1,s2

代码是这样的

create procedure t2_select
@s1 char(10)
as
create table #temp_t2
{
ss1 char(10),
ss2 char(10)
}

declare @s_s1 char(10)
declare @s_s2 char(10)

DECLARE CURSOR_t2 CURSOR For select * from t2
where s1=@s1
open CURSOR_t2

fetch next from CURSOR_t2 into @s_s1,@s_s2

WHILE (@@FETCH_STATUS = 0)
begin
insert into #temp_t2(ss1,ss2) values (@s_s1,@s_s2)
FETCH NEXT FROM CURSOR_t2 into @s_s1,@s_s2
end

CLOSE CURSOR_t2

DEALLOCATE CURSOR_t2

select * from #temp_t2
drop table #temp_t2
go
错误是这样的
[Microsoft][ODBC SQL Server Driver]Syntax error or access violation
 
看情形跟这段sql本身没有什么关系,应该是客户端哪里写错了,可以在查询分析器里直接调用存储过程来测试一下这段代码有没有问题,如下:
exec t2_select
@s1 = YOUR_VALUE
 
我是想学学游标,用游标来做一下,自己总觉得这样是合理的,不知道是哪里出错
希望各位大哥指点迷津
 
create procedure t2_select
@s1 char(10)
as
create table #temp_t2
{
ss1 char(10),
ss2 char(10)
}

declare @s_s1 char(10)
declare @s_s2 char(10)

DECLARE CURSOR_t2 Scorll CURSOR For select * from t2
where s1=@s1
open CURSOR_t2

Fetch First From CURSOR_t2 into @s_s1,@s_s2

WHILE (@@FETCH_STATUS = 0)
begin
insert into #temp_t2(ss1,ss2) values (@s_s1,@s_s2)
Fetch Next From CURSOR_t2 into @s_s1,@s_s2end
end

CLOSE CURSOR_t2

DEALLOCATE CURSOR_t2

select * from #temp_t2
drop table #temp_t2
go
 
这段代码本身没什么意义,他几乎= select * from t2
你这个是在编译时报的还是执行时?
 
是没有什么意义,我只是在与学习一下游标

我是在编译时候报错
 
create procedure t2_select
@s1 char(10)
as
create table #temp_t2
(
ss1 char(10),
ss2 char(10)
)

declare @s_s1 char(10)
declare @s_s2 char(10)

DECLARE CURSOR_t2 CURSOR For select * from t2
where s1=@s1
open CURSOR_t2

Fetch From CURSOR_t2 into @s_s1,@s_s2

WHILE (@@FETCH_STATUS = 0)
begin
insert into #temp_t2(ss1,ss2) values (@s_s1,@s_s2)
Fetch Next From CURSOR_t2 into @s_s1,@s_s2
end

CLOSE CURSOR_t2

DEALLOCATE CURSOR_t2

select * from #temp_t2
drop table #temp_t2
go

改成这样就行了。
create table里用(而不是{,
 
可以了
谢谢大家
尤其感谢xueliran老师

好,发分
按劳分配
 

Similar threads

I
回复
0
查看
974
import
I
I
回复
0
查看
2K
import
I
I
回复
0
查看
3K
import
I
I
回复
0
查看
3K
import
I
I
回复
0
查看
1K
import
I
后退
顶部