在我的代码后面获取存储过程的结果并在SQL查询中使用

本文关键字:SQL 查询 结果 代码 我的 获取 存储过程 | 更新日期: 2023-09-27 18:09:36

由于一些糟糕的数据库设计,我不得不通过一系列步骤来过滤使用存储过程和表值函数寻找的结果。既然我有正常工作的SP,并返回我想要的记录,我需要采取这些匹配,并在我的代码后面的主sql查询工作。

我有一个名为usp_County的存储过程它返回多条记录,然后我有一个正常的查询代码如下:

Select * From MyTable Where Name = @Name AND Address = @Address and so on.

是否有一些(希望简单)的方法来工作在我的结果从存储过程?也许是这样的?

Select * From MyTable Where (dbo.usp_County(@county) AND Name = @Name AND Address = @Address and so on.

我试图找到的结果都在SP运行的同一表中,只是使用SP和此查询进一步过滤。

例如,我想搜索/查询基于:

Name1   Address1    County(this is already populated by records through the SP)

编辑

创建临时表:

CREATE TABLE #spResults (id int, Counties varchar(max))
INSERT INTO #spResults (id, Counties)
EXEC usp_County '@county'
GO 

在我的代码后面获取存储过程的结果并在SQL查询中使用

您可以将sproc数据返回到临时表中(sproc输出数据类型必须与表定义匹配),然后连接到临时表以获取额外的数据&

CREATE TABLE #spResults
(col1, col2, col3..)
INSERT INTO #spResults
EXEC sprocName(@Param)
SELECT * FROM MyTable JOIN #spResults ON <Cond>