日期:2014-05-18  浏览次数:20543 次

怎么把一个存储过程得到的值保存到变量里面?
一个存储过程
最后一句是select   @maxnum
执行这个存储过程exec   pro_no   '参数 '
就是得到一个一行一列的结果集
我定义了一个变量@ID
怎么把执行这个存储过程后得到结果集里面的值放到参数@ID里面去?
我用
declare   @ID
exec   @ID   =   pro_no   '参数 '
select   @ID
得到的结果是0
应该怎么写?
还是要把存储过程的返回值写成return   @maxnum?

------解决方案--------------------
把存储过程的返回值写成return @maxnum試試
------解决方案--------------------
或者可以用輸出參數
------解决方案--------------------
如果是一个数据,用return就行了
------解决方案--------------------
使用output就可以,来自帮助文档的一个例子:
USE pubs
GO
IF EXISTS(SELECT name FROM sysobjects
WHERE name = 'titles_sum ' AND type = 'P ')
DROP PROCEDURE titles_sum
GO
USE pubs
GO
CREATE PROCEDURE titles_sum @@TITLE varchar(40) = '% ', @@SUM money OUTPUT
AS
SELECT 'Title Name ' = title
FROM titles
WHERE title LIKE @@TITLE
SELECT @@SUM = SUM(price)
FROM titles
WHERE title LIKE @@TITLE
GO