SQL Server分区数据的移入和移出
专家解答:
如果你已经知道如果在SQL Server 2005里建立数据分区,那么现在可以进一步了解如何使用SWITCH操作符在分区里控制数据操作。下面我们通过举例来说明。
我们先来一个简单的例子。下面第一组代码创建分区函数和分区方案,并把新建的分区方案应用到新建表"partTable"中。
| 以下是引用片段: -- create partition function CREATE PARTITION FUNCTION partRange1 (INT) AS RANGE LEFT FOR VALUES (10, 20, 30) ; GO -- create partition scheme CREATE PARTITION SCHEME partScheme1 AS PARTITION partRange1 ALL TO ([PRIMARY]) ; GO -- create table that uses this partitioning scheme CREATE TABLE partTable (col1 INT, col2 VARCHAR(20)) ON partScheme1 (col1) ; GO |
接着我们可以运行以下命令来看看分区创建得如何。
| 以下是引用片段: SELECT * FROM sys.partitions WHERE OBJECT_ID = OBJECT_ID('partTable') |

现在分区已经建立好了,可以试着插入新的数据,然后选择数据,看看表里显示有什么数据。
| 以下是引用片段: -- insert some sample data INSERT INTO partTable (col1, col2) VALUES (5, 'partTable') INSERT INTO partTable (col1, col2) VALUES (6, 'partTable') INSERT INTO partTable (col1, col2) VALUES (7, 'partTable') -- select the data SELECT * FROM partTable |
插入数据
我们现在来尝试把另外一个表里的数据转移到经分区的表里。首先我们需要创建一个新表,命名为"newPartTable",这个新建表跟分区的表有同样的分区方案,但是我们还是需要在"col1"创建CHECK约束,使数据导入匹配的分区表里。这些数据最后会被导入到分区表的第4分区里。因此我们要确保CHECK约束要跟分区函数的创建相匹配。另外,我们还需要指明该值不能为NULL。如下所示:
col1 INT CHECK (col1 > 30 AND col1 <= 40 AND col1 IS NOT NULL
创建完表之后我们插入一些数据,然后再select已插入的数据.
| 以下是引用片段: -- switch in CREATE TABLE newPartTable (col1 INT CHECK (col1 > 30 AND col1 <= 40 AND col1 IS NOT NULL), col2 VARCHAR(20)) GO -- insert some sample data into new table INSERT INTO newPartTable (col1, col2) VALUES (31, 'newPartTable') INSERT INTO newPartTable (col1, col2) VALUES (32, 'newPartTable') INSERT INTO newPartTable (col1, col2) VALUES (33, 'newPartTable') -- select the data SELECT * FROM partTable SELECT * FROM newPartTable |
久尚整理 更多关于SQL Server分区数据的移入和移出 的文章
搜索:




