Sql server 如何在SQL Server中运行存储过程的where子句而不进行编辑?
如果我有一个返回结果表的SQL SERVER 2008存储过程,是否可以在不编辑存储过程本身的情况下对结果表运行Sql server 如何在SQL Server中运行存储过程的where子句而不进行编辑?,sql-server,sql-server-2008,Sql Server,Sql Server 2008,如果我有一个返回结果表的SQL SERVER 2008存储过程,是否可以在不编辑存储过程本身的情况下对结果表运行WHERE子句?不直接执行 将输出重定向到临时表。从中选择并筛选 CREATE TABLE #foo (...) INSERT #foo EXEC bar @p1 SELECT * FROM @foo WHERE ... 不直接 将输出重定向到临时表。从中选择并筛选 CREATE TABLE #foo (...) INSERT #foo EXEC bar @p1 SELECT
WHERE
子句?不直接执行
将输出重定向到临时表。从中选择并筛选
CREATE TABLE #foo (...)
INSERT #foo EXEC bar @p1
SELECT * FROM @foo WHERE ...
不直接
将输出重定向到临时表。从中选择并筛选
CREATE TABLE #foo (...)
INSERT #foo EXEC bar @p1
SELECT * FROM @foo WHERE ...
我建议创建一个临时表,将存储过程的结果插入其中,然后使用
WHERE
子句从中进行选择。我建议创建一个临时表,将存储过程的结果插入其中,然后使用WHERE
子句从中进行选择。您可以使用一个表值函数,并结合这里的其他答案。。。ie:创建一个TVF,它创建一个连接本地临时表,用存储过程调用的结果填充该表并返回结果。然后,您可以应用所需的WHERE
子句,从该TVF中执行选择
不过,对于大型数据集,这可能会非常慢 您可以使用表值函数,并将其与此处的其他答案结合起来。。。ie:创建一个TVF,它创建一个连接本地临时表,用存储过程调用的结果填充该表并返回结果。然后,您可以应用所需的WHERE
子句,从该TVF中执行选择
不过,对于大型数据集,这可能会非常慢 Openrowset是我脑海中的一个选项,它的工作原理如下
SELECT *
FROM OPENROWSET ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;','set fmtonly off exec master.dbo.sp_who')
AS tbl
您可以直接应用where子句。Openrowset是我脑海中的一个选项,它的工作原理如下
SELECT *
FROM OPENROWSET ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;','set fmtonly off exec master.dbo.sp_who')
AS tbl
您可以直接应用where子句。有没有其他方法可以直接使用where子句。有没有其他方法可以直接使用where子句呢。