通过对基本表A表的操作,来完成对视图的插入。
按照楼主的要求,我进行了一下测试,结果系统提示为:
视图或函数 'table_view' 不可更新,因为修改会影响多个基表。故,还是操作基本表吧。

解决方案 »

  1.   

    如:rivery所言,取消外键以后,再修改和删除的时候就不能使用级联的好处了。
      

  2.   

    使用instead of insert触发器:
    ---------------------------------------------------------------------------------
    --创建测试表
    create table A(A1 int,A2 varchar(10),A3 varchar(10),CONSTRAINT ID_PK PRIMARY KEY (A1))
    create table B(B1 int,A1 int,B2 varchar(10),B3 varchar(10),CONSTRAINT FK_1 FOREIGN KEY (A1)
       REFERENCES A (A1))
    go--创建视图
    create view C as
    select B.B1,A.A1,A.A2,A.A3,B.B2,B.B3
    from A,B where A.A1=B.A1
    go--在视图上创建instead of insert触发器
    create trigger TRG_1
    on C
    instead of INSERT
    as
    begin
        insert into A select A1,A2,A3 from inserted
        insert into B select B1,A1,B2,B3 from inserted
    end
    go--对视图执行insert操作
    insert into C select 1,1,'r','r','tt','tt'
    go--查看结果
    select * from A
    select * from B
    select * from C
    go--删除测试数据
    drop trigger TRG_1
    drop view c
    drop table b,a
    go
      

  3.   

    实在不行在视图上加instead of 触发器,来代替原来的操作,感觉还是操作基本表来的直接
      

  4.   

    嗯,这个问题其实是在库房管理系统里的A表是产品档案表,A1列是产品编号B表是库存表如果不建立视图C的话,库房管理员在录入库房原始记录时就需要录入2遍,一遍是产品档案表(A),另一遍是库存表(B),我觉得这样不太合理,就改为视图了,不知道大家对库房管理这种类似的东东有没有别的、更好的建议?