SQL。使用视图

时间:2014-03-18 07:02:31

标签: sql sql-server view triggers

我有一张表'商品',上面有关于商品的不同信息(名称,价格等)。我需要创建一个与'Goods'表相同的方案的视图。但观点必须是空的。当用户向视图添加新商品时,它会保存在“商品”表中,但是当用户下次打开时,该视图仍为空。因此,主要思想不是向可以访问视图的用户显示现有数据。

3 个答案:

答案 0 :(得分:2)

假设您的数据库系统支持SQL Server CHECK OPTION等概念,并且您可以创建的视图有了这个选项,你应该没问题:

create table T (ID int not null)
go
create view V
as
    select * from T where 1=0
go
select * from V
go
insert into V(ID) values (10)
go
select * from V
go
select * from T

两个选择V返回0行。从T中选择会返回一行:

ID
----
10

CHECK OPTION

  

强制对视图执行的所有数据修改语句都遵循select_statement中设置的条件。通过视图修改行时,WITH CHECK OPTION确保在提交修改后数据在视图中保持可见。

您希望相反 - 您希望允许通过视图执行的数据修改通过视图创建不可见的行。

答案 1 :(得分:1)

使用&#34创建表Goods1;插入触发器"在它上面插入货物并从Goods1中删除

答案 2 :(得分:1)

据我所知,这是不可能的。视图的重点在于它是一个表或一组表的视图,即。它必须显示与视图匹配的数据。

http://www.w3schools.com/sql/sql_view.asp

你可以做的是创建另一个名为GoodsView的表,并为其添加一个触发器,以便INSERT进入Goods表,然后从GoodsView中删除。

http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=%2Fsqlp%2Frbafysqltrig.htm