读书人

实施存储过程的输入输出参数

发布时间: 2012-08-09 15:59:21 作者: rapoo

执行存储过程的输入输出参数

SQL code
ALTER PROCEDURE [dbo].[PersonCount]    -- Add the parameters for the stored procedure here    @Personid int,    @Personidout int OUTPUT --    <@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>ASBEGIN    -- SET NOCOUNT ON added to prevent extra result sets from    -- interfering with SELECT statements.    SET NOCOUNT ON;    SELECT @Personidout = MAX(age)+1 from Person    SELECT Count(id)as Personid from Person where id=@Personid    -- Insert statements for procedure here    --SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>END


SQL code
--DECLARE @RC intDECLARE @Personid INTDECLARE @Personidout INT-- TODO: 在此处设置参数值。EXECUTE  [AnodTestJoin].[dbo].[PersonCount]@Personid=2, @Personidout OUTPUTSelect 'person '+str(@Personidout)

执行时提示:
消息 119,级别 15,状态 1,第 6 行
必须传递参数 2,并以 '@name = value' 的形式传递后续的参数。一旦使用了 '@name = value' 形式之后,所有后续的参数就必须以 '@name = value' 的形式传递。


output修饰的参数怎么还需要以 '@name = value' 的形式传递????真不懂。。

[解决办法]
SQL code
--DECLARE @RC intDECLARE @Personid INTDECLARE @Personidout INT-- TODO: 在此处设置参数值。EXECUTE  [AnodTestJoin].[dbo].[PersonCount]@Personid=2, @Personidout = @Personidout OUTPUTSelect 'person '+str(@Personidout) 

读书人网 >SQL Server

热点推荐