![](/img/trans.png)
[英]How to apply filter in VS 2012 in Server Explorer stored procedures?
[英]How to filter output of all existing stored procedures in SQL Server?
我的SQL Server数据库中有很多存储过程,其中大约90%返回一个表。 已创建数据库用于存储C#项目的数据。
在一个场景中,当我调用一个过程时,从应用程序端,我希望能够应用一些通用过滤器来处理输出。 例如,获得输出的前100条记录。 这个过滤器应该针对每个过程完成,所以我构建了一个单独的公共静态类,只调用我的应用程序中的过程。 然后我过滤掉那里的每个输出并返回它。
确定这项工作对我而言效率不高,因为数据库返回冗余行,它们将在应用程序端进行过滤。
我决定改善这份工作。 我正在考虑迁移要在数据库端应用的过滤器,但不修改任何现有过程。
我的想法是我在数据库中创建一个RunnerProcedure
,它获取过程名称及其参数,运行它,应用我的通用过滤器,最后返回结果输出。
例如,我的一般过滤器可能是:
select top 100 * from output
所以在这种方法中,我必须实现这样的事情:
CREATE PROCEDURE RunnerProcedure
AS
@ProcedureName nvarchar(max),
@ProcedureParameters dbo.ProcedureParametersTableType READONLY
BEGIN
...
// @output = execute @ProcedureName with @ProcedureParameters
Select top 100 * from (@output)
I don't have any idea in implementation! please help.
...
END
我说出了我想要解释我想要的东西的想法。 如果有可能请告诉我如何。 请完成它。 或者如果不可能,请告诉我您的建议。
谢谢
你可以尝试下面的东西
SELECT * INTO #temptable
FROM OPENROWSET('SQLNCLI', 'Server=loclhost;Trusted_Connection=yes;', 'exec procedurename')
SELECT TOP 100 * FROM #temptable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.