如何解决更新索引视图的基础表,但视图中不存在该列
假设我有两个表格,“国家”和“城市”。
Country(id,fname,president_name)
City(id,cname,country_id_fk,mayor_name)
城市表对国家/地区表具有外键依赖性。假设我在像这样的表上创建了索引视图:
CREATE VIEW CountryCity
WITH SCHEMABINDING
AS
SELECT Country.fname,City.cname
FROM Country INNER JOIN City
ON Country.id = City.country_id_fk;
GO
并在该视图上创建唯一的聚簇索引
CREATE UNIQUE CLUSTERED INDEX ucidx_cc
ON CountryCity(cname,fname);
GO
请注意,我在视图中没有president_name
。如果我更新“国家/地区”表中的president_name
,会影响CountryCity
视图。
我要说的是会影响Country
表中的更新,因为我们在该表上有索引视图,所以会出现性能问题吗?
解决方法
基本上,您可以具有包含特定列的索引。在更新其他列时,如果索引中未包含其他列,则不会应用任何维护其数据的操作。
此外,SQL引擎能够为每个表维护很多索引,因此不必担心这种简单的设计。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。