Tom*_*Tom 4 sql sql-server sql-server-2008-r2
我在MS SQL 2008 R2中有一个存储过程(SP)我正在构建,它需要一个用户列表来缩小返回的数据.
我正在使用的系统有一个GetUsers SP,它返回一个用户列表,然后我需要使用它来限制从我自己工作的SP返回的结果.
我看过TABLE变量,但不确定这是否是我需要的.
我如何将一个SP的结果整合到另一个SP的where子句中?
你可以通过你的SP的结果
DECLARE @yourtablevariable TABLE (fields....)
INSERT INTO @yourtablevariable
EXEC GetUsers
Run Code Online (Sandbox Code Playgroud)
然后
SELECT *
FROM othertable
INNER JOIN @yourtablevariable users on othertable.userid=users.userid
Run Code Online (Sandbox Code Playgroud)
要么
SELECT *
FROM othertable
WHERE userid in (SELECT UserID FROM @yourtablevariable)
Run Code Online (Sandbox Code Playgroud)
或者,如果可能,您可以将GetUsers转换为表值函数.