sql server 2000 存储过程问题,高手请进!

yu3702 2010-09-19 03:39:02
本人要完成一个存储过程,需要用接受一个字符串参数并将这个参数分离开。
由于是sql server 2000 所以没有数组, 我建立了表变量来完成这些参数分离后的存储。 可是分离之后,并不能将表变量里的值赋值给变量,这是什么问题?

代码如下:

ps : @parmate 参数 为 '姓名#年龄#身高#体重#教育经历'
CREATE PROCEDURE result001(@parmate varchar(2000)) AS

declare @i int,
@j int,
@remain varchar(2000),
@str varchar (2000)
DECLARE @kkk table (cola int primary key , colb varchar(20))

set @i=0
set @j=1

set @remain=@parmate
set @i=charindex('#',@remain)
while @i<>0
begin
set @i=charindex('#',@remain)

if @i<>0
begin

insert into @kkk values (@j,SUBSTRING(@remain,1,@i-1))

set @remain=SUBSTRING(@remain,@i+1,{ fn LENGTH(@remain) } )
set @j=@j+1
end

end

select * from @kkk
----- 这里可以查询到 @kkk 的内容为
1,姓名
2,年龄
3,身高
4,体重
5,教育经历
问题来了!!!!!
set @str = (select colb from @kkk where cola=3 )
按道理 @str 应该就是"身高"的值,可是执行存储过程后,@str的值还是NULL.

请高手解答!谢谢了!!!
...全文
59 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yu3702 2010-09-19
高手们,本人已经自行了断了这个问题~~~

真不好意思,是begin end 的问题 在最后一个end 后 做的赋值!

谢谢各位赏光!!
回复
Rotel-刘志东 2010-09-19
语法没有问题,参数有问题吗。
回复
喜-喜 2010-09-19
[Quote=引用楼主 yu3702 的回复:]
本人要完成一个存储过程,需要用接受一个字符串参数并将这个参数分离开。
由于是sql server 2000 所以没有数组, 我建立了表变量来完成这些参数分离后的存储。 可是分离之后,并不能将表变量里的值赋值给变量,这是什么问题?

代码如下:

ps : @parmate 参数 为 '姓名#年龄#身高#体重#教育经历'
CREATE PROCEDURE result001(@parma……
[/Quote]

不知道楼主是怎么得到 @str 的值是 NULL 的!把代码贴出来看看...
回复
SQLCenter 2010-09-19
不可能
你眼花
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-09-19 03:39
社区公告
暂无公告