我创建了一个 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”的变量中。帮我查询。
我创建了一个 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”的变量中。帮我查询。
试试这个
set @dept= (select Dept_Id from Master where User_Id=@userid)
如果您想将此值返回到前端,请编写以下代码
set @dept= (select Dept_Id from Master where User_Id=@userid)
select @dept
你是这个意思吗?
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 但你明白了
这可能对你有帮助
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