PROCEDURE [dbo].[YK_MarketClient_ExistsID]
@ID INT 
AS
BEGIN
DECLARE @TempID INT
SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID
RETURN @TempID
END这是个按ID查找数据的存储过程,按我想的应该返回 @TempID ,但是当我执行这个存储过程时,不返回数字结果啊!!
只有一句“命令已成功完成。”

解决方案 »

  1.   

    PROCEDURE [dbo].[YK_MarketClient_ExistsID]
        @ID INT ,
        @TempID int
    AS
        BEGIN
        SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID
        END
    go
    declare @TempID int 
    exec [dbo].[YK_MarketClient_ExistsID] 1,@TempID output
      

  2.   

    PROCEDURE [dbo].[YK_MarketClient_ExistsID]
        @ID INT output --try
    AS
        BEGIN
        DECLARE @TempID INT
        SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID
        RETURN @TempID
        END
      

  3.   

    PROCEDURE [dbo].[YK_MarketClient_ExistsID]
        @ID INT,
        @TempID int output --try 
    AS
        BEGIN
        DECLARE @TempID INT
        SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID
        RETURN @TempID
        END
      

  4.   

    ALTER PROCEDURE [dbo].[YK_MarketClient_ExistsID]
        @ID INT 
    AS
        BEGIN
        DECLARE @TempID INT
        SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID
        RETURN @TempID
        END
    GO
    DECLARE @i INT 
    EXEC @i=[dbo].[YK_MarketClient_ExistsID] 3
    SELECT @i
      

  5.   

    3楼的应该可以,要把@tempid参数定在存储过程主体外部,并标明output
      

  6.   

    alter 
    PROCEDURE [dbo].[YK_MarketClient_ExistsID]
    @ID INT,
    @TempID int output
    AS
        BEGIN    SELECT @TempID = count(1) FROM dbo.t WHERE ID = @ID    END
    declare @TempID int
    exec YK_MarketClient_ExistsID 1,@TempID output
    select @TempID
    /*
                
    ----------- 
    1(所影响的行数为 1 行)
    */
      

  7.   

    把RETURN @TempID改成Select @TempID
      

  8.   

    存储过程可以return值  
    只是执行的时候要给个变量来存储
    比如5楼说的方法  要显示出来 就select
      

  9.   

    5楼的是执行后显示值,而返回值则用7楼的,定义output参数
      

  10.   

    CREATE PROC usp_returnvalue
    @value NVARCHAR(10)
    AS
    BEGIN
    DECLARE @count NVARCHAR(10);
    SELECT @count = @value;
    RETURN @count;
    END
    GODECLARE @rc INT;-- 能转换为 int 皆可返回
    EXEC @rc = usp_returnvalue '999';
    SELECT @rc AS 'return value';-- 错误:转换失败
    EXEC @rc = usp_returnvalue '99.9';
    SELECT @rc AS 'return value';
    GODROP PROC usp_returnvalue;
    GO