No3:  
========================================创建表===================================
CREATE TABLE [dbo].[Customer_1] (
[CustomerID] [int] NOT NULL ,
[CusName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GOCREATE TABLE [dbo].[Customer_2] (
[CustomerID] [int] NOT NULL ,
[CusName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GOCREATE TABLE [dbo].[Customer_3] (
[CustomerID] [int] NOT NULL ,
[CusName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO
========================================创建约束=================================ALTER TABLE [dbo].[Customer_1] WITH NOCHECK ADD 
CONSTRAINT [PK_Customer_1] PRIMARY KEY  CLUSTERED 
(
[CustomerID]
)  ON [PRIMARY] ,
CONSTRAINT [CK__Customer___Custo__35BCFE0A] CHECK ([CustomerID] >= 1 and [CustomerID] <= 1000)
GOALTER TABLE [dbo].[Customer_2] WITH NOCHECK ADD 
CONSTRAINT [PK_Customer_2] PRIMARY KEY  CLUSTERED 
(
[CustomerID]
)  ON [PRIMARY] ,
CONSTRAINT [CK__Customer___Custo__37A5467C] CHECK ([CustomerID] >= 1001 and [CustomerID] <= 2000)
GOALTER TABLE [dbo].[Customer_3] WITH NOCHECK ADD 
CONSTRAINT [PK_Customer_3] PRIMARY KEY  CLUSTERED 
(
[CustomerID]
)  ON [PRIMARY] ,
CONSTRAINT [CK__Customer___Custo__398D8EEE] CHECK ([CustomerID] >= 2002 and [CustomerID] <= 5000)
GO========================================创建视图=================================
SELECT *
FROM Customer_1
UNION ALL
SELECT *
FROM Customer_2
UNION ALL
SELECT *
FROM Customer_3
以上完成分区视图的创建
 为什么执行
insert into Customer values(1,'abc')出错:UNION ALL 视图 'Customer' 不可更新,因为没有找到分区列。

解决方案 »

  1.   

    No1:分区视图的性能主要是针对分布式数据库的,如果我的分区视图中的基表都是位于同一服务器上,性能上有提高吗?包括查询与更新;
    在查询的性能上有提高,但更新会有降低。   No2:分区视图有很多规则限制——特别是可更新的分区视图——分区列(我的理解是用来保证插入更新的时候数据知道写入到哪个基本表中,当然是需要建立保证不重复值的列)是否非得建立主键? 假如一定需要是主键,那么是否允许分区列是多列合成!?
    不一定要建立主键。分区列可以是多列合成!