分区列存在于每个成员表上,并且通过 CHECK 约束标识特定表中的可用数据。
分区列必须遵守如下规则:
(1) 每个基表都拥有键值由 CHECK 约束所强制的分区列。
(2) 每个表的 CHECK 约束的键范围与其它任何表互不重叠。
(3) 任何分区列的给定值必须只能映射到一个表。
(4) CHECK 约束只能使用以下运算符:BETWEEN、AND、OR、<、<=、>、>=、=。
(5) 分区列不能是标识、默认或 timestamp 列。
(6) 在视图中,分区列必须位于每个 SELECT 语句的选择列表中相同的序号位置处。
例如,分区列要么总是每个选择列表中的首列,要么总是每个选择列表中的第二列,依次类推。
(7) 分区列不允许为空。
(8) 分区列必须是表的主键的一部分。
(9) 分区列不能是计算列。
(10) 在分区列上必须只有一个约束。如果约束多于一个,SQL Server 会忽略所有的约束并在确
定视图是否为分区视图时不考虑这些约束。
(11) 分区列的可更新性没有约束。
INSERT 语句通过分区视图将数据添加到成员表中。INSERT 语句必须遵守下列规则:
(1) 所有列必须包含在 INSERT 语句中,即使基表中的列可能为 NULL 或在基表中定义了 DEFAULT 约束。
(2) 不能在 INSERT 语句的 VALUES 子句中指定 DEFAULT 关键字。
(3) INSERT 语句提供的值必须符合在一个成员表的分区列上定义的 CHECK 约束逻辑。
(4) 如果一个成员表包含具有标识属性的列,则不能使用 INSERT 语句。
(5) 如果一个成员表包含 timestamp 列,则不能使用 INSERT 语句。
(6) 如果存在具有同一视图或任一成员表的自联接,则不能使用 INSERT 语句。