在sql server中返回输出参数

时间:2014-04-08 06:19:56

标签: asp.net sql-server

此条件为真,则返回true,否则返回false

ALTER PROCEDURE spAppliedJobOrnot

    --Here job is already applied then it return true otherwise return false
    @check bit OUTPUT,
    @UserId numeric,
    @JobId numeric

AS
BEGIN

    SET NOCOUNT ON;
    if exists (SELECT 1 FROM StudentInbox_Activities WHERE JobId=@JobId and StudentId=@UserId and 
    JobAppliedDate is not null)
        BEGIN
        SET @check=1  --The job is applied so check=true
        END
    ELSE
    BEGIN
        SET @check=0;
    END
END
GO

这里有如何获得@check值

3 个答案:

答案 0 :(得分:3)

使用OUTPUT参数时,需要在调用语句中返回值。

在这个例子中有一个小说

SQL Fiddle DEMO

做任何事情的程序

CREATE PROCEDURE FOO(@BAR INT OUTPUT)
AS
BEGIN
    SET @BAR = -1
END;

然后调用语句

DECLARE @TADA INT = 0
EXEC FOO @TADA OUTPUT
SELECT @TADA

答案 1 :(得分:2)

由于您有@check作为输出参数,因此您也可以从应用程序中获取此值。 如果它在C#中,您可以使用以下内容,

SqlCommand cmd = new SqlCommand("SP_NAME");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@param1", param1);
cmd.Parameters.AddWithValue("@param2", param2);

cmd.Parameters.Add("@check", SqlDbType.Int);
cmd.Parameters["@check"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery()
return Convert.ToInt32(cmd.Parameters["@check"].Value);

答案 2 :(得分:-1)

在程序结束语句

之前的if-end语句之后添加以下代码
select @check

然后运行程序。

也许this link可能对您的ASP.Net问题有帮助。