| 子句至少引用一个表。select_statement 必须不仅只包含非表格格式的表达式(即不是从表派生出的表达式)。例如,以下视图是不可更新的:
CREATE VIEW NoTable AS
SELECT GETDATE() AS CurrentDate,
@@LANGUAGE AS CurrentLanguage,
CURRENT_USER AS CurrentUser
INSERT、UPDATE 和 DELETE 语句在可以引用可更新视图之前,也必须如上述条件指定的那样满足某些限制条件。只有当视图可更新,并且所编写的 UPDATE 或 INSERT 语句只修改视图的 FROM 子句引用的一个基表中的数据时,UPDATE 和 INSERT 语句才能引用视图。只有当视图在其 FROM 子句中只引用一个表时,DELETE 语句才能引用可更新的视图。
分区视图比较麻烦,本文采用INSTEAD OF 触发器的方法解决!
我的实验如下:先建立两个表Table1、Table2。表结构分别如下:
备注:
1, 其中Table2中的d字段为自动性,步长为默认值1
2, Table1中的a字段为自动性,步长为默认值1
然后,建立视图VIEW1:
SELECT dbo.Table2.d, dbo.Table2.e, dbo.Table1.b, dbo.Table1.c
FROM dbo.Table2 INNER JOIN
dbo.Table1 ON dbo.Table2.a = dbo.Table1.a
显然,该视图包含字段d,e,b,c四个字段
上一页 [1] [2] [3] 下一页 |