将值存储在存储过程中

时间:2013-05-03 11:34:20

标签: sql sql-server sql-server-2005 stored-procedures

我创建了一个SP为“SP_SELECT”

CREATE PROCEDURE SP_SELECT @userid varchar(50)
AS
BEGIN
SELECT Dept_Id from Master where User_Id=@userid
END
GO

现在我的任务是将结果(即)Dept_Id 存储在同一存储过程本身的名为“dept”的变量中。帮我查询。

3 个答案:

答案 0 :(得分:0)

你是说这个吗?

CREATE PROCEDURE SP_SELECT @userid varchar(50)
AS
BEGIN
      DECLARE @deptid int;

      SET @deptid = SELECT Dept_Id from Master where User_Id=@userid
END
RETURN @deptid
GO

您也可以将@deptid作为输出参数传递给sql。

但是每次在调用函数或代码上运行存储过程时,这个var才会存在。

即。

Declare @masterdeptid int;
SET @masterdeptid = EXEC SP_Select '123';

我不是测试sql但是你明白了

答案 1 :(得分:0)

尝试这个

set  @dept= (select Dept_Id from Master where User_Id=@userid)

如果你想将这个值返回到前端,请写下面的代码

set  @dept= (select Dept_Id from Master where User_Id=@userid)
select @dept

答案 2 :(得分:0)

这对你有帮助

CREATE PROCEDURE USP_SELECT @userid varchar(50), @Dept int output
AS
BEGIN
      SELECT @Dept = Dept_Id from Master where User_Id=@userid
END

上面的代码可以作为

执行
Declare @Dept int;
EXEC USP_Select '123',@Dept output
Print @Dept