当前位置: 代码迷 >> Sql Server >> 关于怎么同时传入参数和取存储过程返回值
  详细解决方案

关于怎么同时传入参数和取存储过程返回值

热度:62   发布时间:2016-04-24 08:48:47.0
关于如何同时传入参数和取存储过程返回值
SQL存储代码如下:
ALTER proc [dbo].[Hunfinished] @sname nvarchar(50), @unfinish int output
as
--未完成的事项添加到临时表,并且最后汇总有多少项未完成的工作
-- 第一步 增加临时表
if object_id('tempdb.dbo.#Hun') is not null
drop table #Hun
--1.1创建临时表
CREATE TABLE #Hun
(
hu01 nvarchar(250) NULL,--模块
hu02 nvarchar(250) NULL,--未完成事项
hcount int )--数量
-- 第二步 加班未完成 添加临时表
INSERT INTO #Hun(hu01,hu02,hcount)
SELECT '人力资源管理','加班单主管审核列表',COUNT(0) FROM  Hatime WHERE FLAG=0 AND ME19=@sname
-- 最后一步 汇总所有的未完成数量
SELECT @unfinish=SUM(hcount) FROM #Hun

执行存储过程代码如下:
declare @code decimal
exec Hunfinished @sname='杨华明', @code output
select @code 
执行报错如下
消息 119,级别 15,状态 1,第 2 行
必须传递参数 2,并以 '@name = value' 的形式传递后续的参数。一旦使用了 '@name = value' 形式之后,所有后续的参数就必须以 '@name = value' 的形式传递。

请教一下执行代码如何修改,谢谢
------解决思路----------------------
declare @code int,@sname  nvarchar(50)
set @sname='杨华明'
exec Hunfinished @sname, @code output
select @code 

------解决思路----------------------

--如果某个参数使用了 '@name = value' 的形式,那么该参数后面的参数都必须以这种方式传递:
declare @code int
exec Hunfinished @sname='杨华明', @unfinish=@code  output
select @code
  相关解决方案