此条件为真,则返回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值
答案 0 :(得分:3)
使用OUTPUT参数时,需要在调用语句中返回值。
在这个例子中有一个小说
做任何事情的程序
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)