-2

我创建了一个 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”的变量中。帮我查询。

4

3 回答 3

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
于 2013-05-03T12:13:54.810 回答
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 只会在每次存储过程在调用函数或代码上运行时才存在,您仍然需要存储该值。

IE

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

我没有测试 sql 但你明白了

于 2013-05-03T11:43:28.263 回答
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
于 2013-05-27T13:14:09.820 回答