【发布时间】:2018-01-08 07:49:19
【问题描述】:
我有一个 SQL 视图,我想使用传递给它的参数对其进行过滤。我正在考虑创建一个存储过程,但是,经过一些研究,我得出的结论是这是不可能的。
其他类似的线程建议创建存储函数或存储过程,并将视图代码嵌入其中。我的问题是,执行此类任务的最有效方法是什么。我的观点由大约 70 行代码组成,仅供记录。你怎么看?下面是一些取自另一个线程的sn-ps。
存储过程看起来像
CREATE PROCEDURE s_emp
(
@enoNumber INT
)
AS
SQL VIEW CODE +
WHERE
parameter=@stored_parameter
或者用户定义的函数看起来像
CREATE FUNCTION u_emp
(
@enoNumber INT
)
RETURNS TABLE
AS
RETURN
(
SQL VIEW CODE +
WHERE
parameter=@stored_parameter
)
【问题讨论】:
-
把视图当作一张桌子。在
Where子句中使用带有参数的视图中的stored procedure到Select。 -
@WEI_DBA 所以你可以从
stored procedure执行view? -
Select * From View_Name将您的视图视为一张桌子。而已。添加Where子句以使用参数等缩小选择范围。使用Order by进行排序。您对表格所做的一切,都与您的视图有关。 -
@WEI_DBA 太好了。感谢您的澄清。
标签: sql-server stored-procedures sql-function