sql server 2000 存储过程问题,高手请进!
本人要完成一个存储过程,需要用接受一个字符串参数并将这个参数分离开。
由于是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.
请高手解答!谢谢了!!!