- 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 [email protected] -- 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,并以 [email protected] = value' 的形式传递后续的参数。一旦使用了 [email protected] = value' 形式之后,所有后续的参数就必须以 [email protected] = value' 的形式传递。
output修饰的参数怎么还需要以 [email protected] = value' 的形式传递????真不懂。。
------解决方案--------------------
- SQL code
--DECLARE @RC intDECLARE @Personid INTDECLARE @Personidout INT-- TODO: 在此处设置参数值。EXECUTE [AnodTestJoin].[dbo].[PersonCount]@Personid=2, @Personidout = @Personidout OUTPUTSelect 'person '+str(@Personidout)