select中调用存储过程的问题,急!

LIYUANYU 2004-11-18 02:05:49
各位大侠:
一个汽车生产中的实例,请大家帮忙解决!小弟在数据库sjcl中建了一个存储过程,代码如下:
CREATE PROCEDURE CXYS
@CX VARCHAR(50) OUTPUT,@YS VARCHAR(50)
AS
SELECT
@CX=
CASE
WHEN @YS='玉白' THEN @CX+'/YB0'
WHEN @YS='东风蓝'OR @YS='东风兰' THEN @CX+'/DFL0'
WHEN @YS='香槟晶' THEN @CX+'/XBJ0'
WHEN @YS='印第安红' THEN @CX+'/YDH0'
WHEN @YS='桂阳绿' THEN @CX+'/GYL0'
END
SELECT @CX
GO
然后在查询分析器中试图在select语句中调用这个存储过程,代码如下:
USE SJCL
SELECT EXECUTE CXYS CX,YS,YJH,R1,R2,R3,R4
FROM RKJHB
为何总是不成功???实际之问题,愿共同解决之!
...全文
230 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
alipaymate 2005-03-17
  • 打赏
  • 举报
回复
up
铁歌 2004-11-20
  • 打赏
  • 举报
回复
SP不能用SELECT调用 ,function 才能这样调用.
Yang_ 2004-11-20
  • 打赏
  • 举报
回复
create function fn_CXYS(
@CX VARCHAR(50),@YS VARCHAR(50)
)
returns VARCHAR(50)
AS
begin
declare @r varchar(50)
set @r=''
SELECT
@r=
CASE
WHEN @YS='玉白' THEN @CX+'/YB0'
WHEN @YS='东风蓝'OR @YS='东风兰' THEN @CX+'/DFL0'
WHEN @YS='香槟晶' THEN @CX+'/XBJ0'
WHEN @YS='印第安红' THEN @CX+'/YDH0'
WHEN @YS='桂阳绿' THEN @CX+'/GYL0'
END
return @CX
GO

--查询

USE SJCL
SELECT dbo.fn_CXYS(CX,YS) as CXYS,CX,YS,YJH,R1,R2,R3,R4
FROM RKJHB


Yang_ 2004-11-20
  • 打赏
  • 举报
回复
你需要怎样的结果?
建议看看函数的用法
chinaandys 2004-11-20
  • 打赏
  • 举报
回复
declare @CX varchar(100)
exec '玉白',@CX output
select @CX
Zhang_1978 2004-11-20
  • 打赏
  • 举报
回复

DECLARE @test int
EXECUTE CXYS '传入的值',@test OUTPUT
print @test
cheng1yao2guai3 2004-11-20
  • 打赏
  • 举报
回复
USE SJCL
go
declare @cx2 varchar(60)
exex CXYS '@ys--你的输入参数',@cx2 output
select @cx2,CX,YS,YJH,R1,R2,R3,R4

chinaandys 2004-11-20
  • 打赏
  • 举报
回复
CREATE PROCEDURE CXYS
@YS VARCHAR(50) 输入param
AS
declare @CX varchar(50) 定义一个变量
SELECT
@CX=
CASE
WHEN @YS='玉白' THEN @CX+'/YB0'
WHEN @YS='东风蓝'OR @YS='东风兰' THEN @CX+'/DFL0'
WHEN @YS='香槟晶' THEN @CX+'/XBJ0'
WHEN @YS='印第安红' THEN @CX+'/YDH0'
WHEN @YS='桂阳绿' THEN @CX+'/GYL0'
END
SELECT CX,YS,YJH,R1,R2,R3,R4 //把最后查询语句放到这里就行了
FROM RKJHB where CX=@CX
GO
zhang_yzy 2004-11-20
  • 打赏
  • 举报
回复
将你的存储过程改为函数,才可以在SELECT语句中调用结果的
chinaandys 2004-11-20
  • 打赏
  • 举报
回复
To ejason(忏悔一生)

sp可以用select来得到execute的数据集的,只不过要用openrowset而已..


/*SELECT EXECUTE CXYS CX,YS,YJH,R1,R2,R3,R4
FROM RKJHB*/

楼主: 还没有搞清楚,变量和参数的定义吗
定义存储过程
......... 这是参数定义部分
............
as
declare 。。。。。变量
select .......查询语句
LIYUANYU 2004-11-18
  • 打赏
  • 举报
回复
我的问题很菜吗?怎么没有人理我啊?

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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