如何创建视图并在以后更新?

时间:2010-03-12 01:42:41

标签: sql database syntax

是否可以使用新数据更新同一视图?在UPDATE之后使用CREATE似乎不起作用。

只有一张桌子。希望视图成为该表的子集。使用视图后,我希望相同的视图从唯一的表中保存不同的数据子集。

我以为我可以创建视图,删除它,然后使用相同的名称再次创建它与表中的不同子集.....但不确定是否有更好的方法?

Create view ID 1-10 if it does not exist.
. 
. //
. //
. 
Update view **ID** 2-10   

感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

我认为你误解了观点的目的。通过更改WHERE子句,可以通过简单的选择来处理您尝试执行的操作。视图通常表示由其选择标准定义的表(或表)中的固定窗口。您通常不会动态更改视图以表示不同的选择条件。通常,如果您在视图中选择列的子集或在视图中执行多个表的连接,则只需对表或视图本身进行选择。由于你有一个表,我建议你动态构建你需要的查询并完全跳过视图。

  select * from table where ID > 0 and ID <= 10

然后

  select * from table where ID > 1 and ID <= 10

请注意,在许多情况下,您可以将其另存为存储过程,并在需要时参数化查询。如果您的语言/框架支持它,那么在发出简单命令时也要使用参数化查询。

答案 1 :(得分:1)

是的,基表的更新将在视图中可见(所有其他条件相同)。 更多信息会有所帮助。

答案 2 :(得分:1)

观点是错误的工具。

您应该制作一个以ID范围为参数的存储过程。

要回答这个问题,您正在寻找ALTER VIEW声明。