由于某些不良的数据库设计,我不得不经过一系列步骤才能使用存储过程和表值函数来筛选所需的结果。现在,我已经使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
您可以将sproc数据返回到临时表中(sproc输出数据类型必须与表定义相匹配),然后加入到临时表中以获取额外的数据并应用过滤器。
CREATE TABLE #spResults
(col1, col2, col3..)
INSERT INTO #spResults
EXEC sprocName(@Param)
SELECT * FROM MyTable JOIN #spResults ON <Cond>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句