Sql server SQL Server视图和存储过程

Sql server SQL Server视图和存储过程,sql-server,stored-procedures,view,Sql Server,Stored Procedures,View,我正在私有框架上使用SQL Server创建一个web应用程序。此web应用程序具有orderLines表,该表应仅显示当前打开的特定订单的orderLines 我的框架允许将视图作为数据对象传递给表。因此,基本上我可以将orderlines视图传递给我的表,它显示数据库中的所有orderlines,但问题是我只需要特定订单的orderlines。我创建了一个存储过程,它接收orderID作为参数,但我不知道如何使用它来代替视图 存储过程代码如下,视图基本相同,只是没有检查orderID 我在想

我正在私有框架上使用SQL Server创建一个web应用程序。此web应用程序具有orderLines表,该表应仅显示当前打开的特定订单的orderLines

我的框架允许将视图作为数据对象传递给表。因此,基本上我可以将orderlines视图传递给我的表,它显示数据库中的所有orderlines,但问题是我只需要特定订单的orderlines。我创建了一个存储过程,它接收orderID作为参数,但我不知道如何使用它来代替视图

存储过程代码如下,视图基本相同,只是没有检查orderID

我在想,也许有一种方法可以将存储过程添加到我的视图中?因为在我看来,不可能将参数传递给视图

有人能帮我吗


谢谢

可以使用EXEC调用存储过程:

EXEC <sp_NameHere> @Parameter = <ParameterValueHere>
不能像从视图或表中选择一样从存储过程中进行选择


然而,我完全同意SMor的说法:术语视图在SQL中的含义完全不同。您应该重新考虑您的解决方案,因为我假设您正在使用的框架将提供一种方法,用于以更有效的方式构建查询和/或过滤结果

不能对视图进行参数化。视图只是由SELECT语句定义的虚拟表。如果需要参数化引用视图的语句,则在引用所述视图时需要:选择{YourColumns FROM dbo.YourView WHERE YourColumn=@Param;到目前为止,您试图引用该视图的内容是什么?您也没有在此处标记任何语言,因此我们不知道您在使用什么。如果您需要参数化视图,请查看内联表值函数。如果您松散地使用术语,并且使用未定义的语言,则会造成混淆er.View在tsql中的意思是特定的。但是您使用未定义的开发环境的框架-c?MVC?也使用了这个术语。不要将它们等同起来。短语pass a View…to a table只对您有意义。为了清楚起见,还有一件事。您不能使用参数定义视图。但是您可以在同一个人中使用参数查询视图就像你会使用代码/框架执行的任何其他语句一样。这会返回到前面的评论。我认为你对你的框架及其提供的功能与如何使用tsql来实现所需的结果感到困惑。我正在私有框架上使用SQL Server创建web应用。你正在使用什么样的框架?或som是这样吗?
EXEC <sp_NameHere> @Parameter = <ParameterValueHere>
EXEC [dbo].[astp_Sales_OrdersLinesProductsByID] @OrderId = 1