关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server »SQL Server 2005数据库分区数据的移入和移出操作(1)

    SQL Server 2005数据库分区数据的移入和移出操作(1)

    2011-07-14 12:56:00 出处:ITJS
    分享

    SQL Server 2005数据分区可以使用SWITCH操作符轻松地在分区进行数据移入和移出。在SQL Server 2005里建立数据分区,那么现在可以进一步了解如何使用SWITCH操作符在分区里控制数据操作。下面我们通过举例来说明。

    我们先来一个简单的例子。下面第一组代码创建分区函数和分区方案,并把新建的分区方案应用到新建表"partTable"中。

    de>以下是引用片段:

    --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 

    接着我们可以运行以下命令来看看分区创建得如何。

    de>以下是引用片段:

    SELECT *FROM sys.partitions   WHERE OBJECT_IDOBJECT_ID=OBJECT_ID('partTable') 

    SQL Server 2005数据库分区数据的移入和移出操作

    现在分区已经建立好了,可以试着插入新的数据,然后选择数据,看看表里显示有什么数据。

    de>以下是引用片段:

    --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已插入的数据。

    de>以下是引用片段:

    --switchin

    CREATE TABLE newPartTable(col1 INT CHECK(col1>30 AND col1<=40 AND col1 IS NOT NULL),   col2  VARCHAR(20de>))   GO 

    --insertsomesampledataintonewtable

    INSERT INTO newPartTable(col1,col2) VALUES(31,'newPartTable')   INSERT INTO newPartTable(col1,col2) VALUES(32,'newPartTable')   INSERT INTO newPartTable(col1,col2) VALUES(33,'newPartTable') 

    --selectthedata

    SELECT * FROM partTable   SELECT * FROM newPartTable 

    这里我们可以看到partTable和newPartTable两个表的情况。

    下一组命令就是用来转移数据的。我们用ALTER TABLE命令把数据从表newPartTable中把数据转移到分区表的第4分区里。我们选择第4分区是因为我们插入col1的值需要匹配分区函数的设置。完成数据的移植之后,可以输入select data,就会看到newPartTable的全部数据都移到了partTable里。而且表newPartTable在数据移出后依然存在。

    de>以下是引用片段:

    --maketheswitch

    ALTER TABLE newPartTable SWITCHT OpartTable PARTITION4;   GO 

    --select the data

    SELECT * FROM partTable   SELECT * FROM newPartTable 

    SQL Server 2005数据库分区数据的移入和移出操作

    数据移出

    反过来,有时候我们也需要从数据库的分区表里把数据转移到别的表里。那要怎么做呢 首先我们来创建一个名为"nonPartTable"的表,分区方案同上。注意,这个表中的列只含有基本的信息,不需要创建CHECK约束。

    创建新表后,我们还是使用ALTER TABLE命令来把第1分区里的"partTable"表中的数据转移到新建表"nonPartTable"中。第1分区里的数据是所有"col1"值小于10的条目。

    转移数据之后,我们来执行select the data命令。

    de>以下是引用片段:

    --switchout

    CREATE TABLE nonPartTable(col1 INT,col2  VARCHAR(20))   ON[primary];   GO 

    --make the switch

    ALTER TABLE partTable SWITCH PARTITION1 TO nonPartTable;   GO 

    --select the data

    SELECT * FROM partTable   SELECT * FROM nonPartTablede> 

    从下图可以看到,partTable里的数据已经转移到了表nonPartTable里。

    SQL Server 2005数据库分区数据的移入和移出操作

    现在我们了解到数据分区功能对于移动和维护大量数据集有很大的作用。不过最后要说的是,虽然这个功能看起来很简单,但是在实施数据分区方案之前还要考虑很多因素。

    本文就介绍到这里,假如想了解更多SQL Server数据库的操作,可以到我们网站的SQL Server频道:http://database.51cto.com/sqlserver/,谢谢!

    SQL Server 2005数据分区可以使用SWITCH操作符轻松地在分区进行数据移入和移出。在SQL Server 2005里建立数据分区,那么现在可以进一步了解如何使用SWITCH操作符在分区里控制数据操作。下面我们通过举例来说明。

    我们先来一个简单的例子。下面第一组代码创建分区函数和分区方案,并把新建的分区方案应用到新建表"partTable"中。

    de>以下是引用片段:

    --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 

    接着我们可以运行以下命令来看看分区创建得如何。

    de>以下是引用片段:

    SELECT *FROM sys.partitions   WHERE OBJECT_IDOBJECT_ID=OBJECT_ID('partTable') 

    SQL Server 2005数据库分区数据的移入和移出操作

    现在分区已经建立好了,可以试着插入新的数据,然后选择数据,看看表里显示有什么数据。

    de>以下是引用片段:

    --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已插入的数据。

    de>以下是引用片段:

    --switchin

    CREATE TABLE newPartTable(col1 INT CHECK(col1>30 AND col1<=40 AND col1 IS NOT NULL),   col2  VARCHAR(20de>))   GO 

    --insertsomesampledataintonewtable

    INSERT INTO newPartTable(col1,col2) VALUES(31,'newPartTable')   INSERT INTO newPartTable(col1,col2) VALUES(32,'newPartTable')   INSERT INTO newPartTable(col1,col2) VALUES(33,'newPartTable') 

    --selectthedata

    SELECT * FROM partTable   SELECT * FROM newPartTable 

    这里我们可以看到partTable和newPartTable两个表的情况。

    下一组命令就是用来转移数据的。我们用ALTER TABLE命令把数据从表newPartTable中把数据转移到分区表的第4分区里。我们选择第4分区是因为我们插入col1的值需要匹配分区函数的设置。完成数据的移植之后,可以输入select data,就会看到newPartTable的全部数据都移到了partTable里。而且表newPartTable在数据移出后依然存在。

    de>以下是引用片段:

    --maketheswitch

    ALTER TABLE newPartTable SWITCHT OpartTable PARTITION4;   GO 

    --select the data

    SELECT * FROM partTable   SELECT * FROM newPartTable 

    SQL Server 2005数据库分区数据的移入和移出操作

    数据移出

    反过来,有时候我们也需要从数据库的分区表里把数据转移到别的表里。那要怎么做呢 首先我们来创建一个名为"nonPartTable"的表,分区方案同上。注意,这个表中的列只含有基本的信息,不需要创建CHECK约束。

    创建新表后,我们还是使用ALTER TABLE命令来把第1分区里的"partTable"表中的数据转移到新建表"nonPartTable"中。第1分区里的数据是所有"col1"值小于10的条目。

    转移数据之后,我们来执行select the data命令。

    de>以下是引用片段:

    --switchout

    CREATE TABLE nonPartTable(col1 INT,col2  VARCHAR(20))   ON[primary];   GO 

    --make the switch

    ALTER TABLE partTable SWITCH PARTITION1 TO nonPartTable;   GO 

    --select the data

    SELECT * FROM partTable   SELECT * FROM nonPartTablede> 

    从下图可以看到,partTable里的数据已经转移到了表nonPartTable里。

    SQL Server 2005数据库分区数据的移入和移出操作

    现在我们了解到数据分区功能对于移动和维护大量数据集有很大的作用。不过最后要说的是,虽然这个功能看起来很简单,但是在实施数据分区方案之前还要考虑很多因素。

    本文就介绍到这里,假如想了解更多SQL Server数据库的操作,可以到我们网站的SQL Server频道:http://database.51cto.com/sqlserver/,谢谢!

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    微软已修复windows 7/windows 8.1媒体中心严重漏洞 用户可下载安

    卸载MySQL数据库,用rpm如何实现

    windows 7中使用网上银行或支付宝支付时总是打不开支付页面

    一致性哈希算法原理设计

    MySQL数字类型中的三种常用种类

    如何解决SQL Server中传入select语句in范围参数

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。