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.

请高手解答!谢谢了!!!
...全文
96 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
不可能
你眼花

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧