通过对基本表A表的操作,来完成对视图的插入。
按照楼主的要求,我进行了一下测试,结果系统提示为:
视图或函数 'table_view' 不可更新,因为修改会影响多个基表。故,还是操作基本表吧。
按照楼主的要求,我进行了一下测试,结果系统提示为:
视图或函数 'table_view' 不可更新,因为修改会影响多个基表。故,还是操作基本表吧。
解决方案 »
- 关于sp_prepexec
- 《Microsoft Sql server 2008 Internal》读书笔记--目录
- 我需要MSSQL2005这个数据库,要求能附加数据库这个功能,现在我安装MSSQL2005,说是硬件不具备条件,我的机器也确实比较破,p111 667,
- excel 表导入到sql server 2000后,里面的数值多出来小数
- sp_executesql AND exec
- 有难度的问题 如何屏蔽企业管理器呢?
- 如何做分组编号?
- 请问高手:表与存储过程如何建立相关
- 紧急求助:关于分组统计的sql语句?Group by?
- 这个交叉表查询这么搞, 谢谢!
- 我有一字段(int)记录日期,日期是通过datediff(day,'1899-12-30','2005-11-15')转换来的,我想转换成具体日期怎么办?
- 键列信息不足或不正确,删除影响到多行,如何处理?谢谢!解决了,即刻给分!
---------------------------------------------------------------------------------
--创建测试表
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