一个关于使用存储过程结果的问题!希望能得到您的帮助!谢谢!

Iris 2003-08-24 04:55:45
CREATE PROCEDURE P_GetWorkDay
@day varchar(2),
@calename varchar(6),
@caleno varchar(1)
AS
begin
EXEC('SELECT [WDAYNUM] FROM [XCALE] WHERE [CALENAME]='+@calename+')
end;

存储过程如上,其中字段WDAYNUM的类型是decimal,存储过程返回的结果是1或0

我在另一个存储过程里面使用这个存储过程的结果
如下:
DECLARE @I AS decimal
Exec @I = [dbo].[P_GetWorkDay] @str_day,@calename,@calen

这样写对吗?
我判断了一下,@I的值好像不是0或1,存储过程P_GetWorkDay返回的是个数据集吧,是不是不能直接赋值给@I呀?
谢谢!
...全文
29 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Iris 2003-08-24
  • 打赏
  • 举报
回复
存储过程返回的结果是1或0 意思是:
select的结果只能是0或1,也就是说字段WDAYNUM的值只有0和1两个值
zarge 2003-08-24
  • 打赏
  • 举报
回复
修改存储过程如下

CREATE PROCEDURE P_GetWorkDay
@day varchar(2),
@calename varchar(6),
@caleno varchar(1)
AS
begin

declare @ret int
SELECT @ret = [WDAYNUM] FROM [XCALE] WHERE [CALENAME] = @calename

return @ret
end
firedragoninhell 2003-08-24
  • 打赏
  • 举报
回复
P_GetWorkDay返回的是个记录集,因为P_GetWorkDay最后一句执行的是EXEC语句。
Exec @I = [dbo].[P_GetWorkDay] @str_day,@calename,@calen取到的值是正确的。

不理解“存储过程返回的结果是1或0”是什么意思。
viptiger 2003-08-24
  • 打赏
  • 举报
回复
exec P_GetWorkDay @i output
是个例子
^_^

34,576

社区成员

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

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