使用参数创建SQL视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用参数创建SQL视图相关的知识,希望对你有一定的参考价值。

我有一个接受参数的SQL查询。现在,当我试图将该查询包含到视图中时,我面临一个错误,因为视图不能像SP或函数那样保存参数。

因此,如果我必须创建必须包含参数的视图,那么有可能吗?

非常感谢

答案

我不这么认为你可以在View中创建一个参数。但是你可以创建一个带有输入参数的函数,如下所示。

CREATE FUNCTION dbo.Sample (@Parameter varchar(10))
RETURNS TABLE
AS
RETURN
(
 SELECT Field1, Field2,....
 FROM YourTable
 WHERE Field3 = @Parameter
)
另一答案

的,z zxswい

创建一个虚拟表,其内容(列和行)由查询定义。使用此语句可以在数据库的一个或多个表中创建数据视图。例如,视图可用于以下目的:

集中,简化和自定义每个用户对数据库的感知。

作为一种安全机制,允许用户通过视图访问数据,而不授予用户直接访问底层基表的权限。

提供向后兼容的接口以模拟其架构已更改的表。

所以,基本上,这就像一个表,并且可以在表中添加“参数”的唯一方法是在访问视图时通过filter语句

另一答案

当然不。将View视为包含已编译数据集的表(尽管实际上视图与表不同),因此它永远不会有任何输入参数,如sp或函数。

另一答案

你们从来没有这样做过,因为VIEW是一个由查询创建的整个其他表,你可以在该查询中包含参数....它也很简单

像任何其他参数一样构建你的视图....

例:

from MSDN

现在调用这样的视图:

USE [iepa]
GO
/****** Object:  StoredProcedure [dbo].[get_Batch_Data]    Script Date: 06/30/2015 11:41:38 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[get_Batch_Data]
@inparm varchar(12)
AS
select *
from batch_data
where COM_Batch_ID=@inparm

非常简单且非常强大,因为您可以使用视图向表的子集或表的联合提供不可更改的信息。 视图不是表格,因此您有时无法做到。

但是当你在查询中形成一个非常复杂的连接/联合时,这些是你不能做的事情......自1999年以来一直在使用上面那个,所以我知道它有效....

另一答案

视图无法直接传递参数,但您可以使用select from get_batch_data('61404') <<<< 61404 is the parameter being passed....

context_info

以上是关于使用参数创建SQL视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用底部导航视图和 Android 导航组件将参数传递给片段?

片段中的按钮自定义视图

如何从使用视图寻呼机创建的选项卡片段转移到另一个片段

方便调试使用的代码片段

sql server创建视图添加where条件,条件包含一个参数

在选择的底部导航视图项目上重新创建片段