在SQL Server 2005里面把表移动到另外一个filegroup里(ZT,经翻译)
来源:互联网 发布:淘宝背包女双肩包收口 编辑:程序博客网 时间:2024/06/14 05:31
在SQL Server 2005里面, alter table新增了一个move to 选项,可以将table移动到另外一个filegroup里面,其原理为:删除一个表的cluster index时, SQL Server会将数据移动到一个普通的表里(heap).通过指定move to选项,可以控制SQL Server将数据移动到指定的filegroup里.
举例说明如下:
--先创建一个测试数据库
USE master
GO
CREATE DATABASE TEST
GO
--创建两个filegroup
ALTER DATABASE TEST ADD FILEGROUP TEST_DATA_1
GO
ALTER DATABASE TEST ADD FILEGROUP TEST_DATA_2
GO
--添加一个数据文件到TEST_DATA_1
ALTER DATABASE TEST
ADD FILE
( NAME = TEST1,
FILENAME = ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATATEST_1.ndf’,
SIZE = 1MB,
MAXSIZE = 10MB,
FILEGROWTH = 1MB)
TO FILEGROUP TEST_DATA_1
GO
--添加另外一个数据文件到TEST_DATA_2
ALTER DATABASE TEST
ADD FILE
( NAME = TEST2,
FILENAME = ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATATEST_2.ndf’,
SIZE = 1MB,
MAXSIZE = 10MB,
FILEGROWTH = 1MB)
TO FILEGROUP Test_DATA_2
GO
--在TEST_DATA_1创建一个数据表
USE TEST
GO
CREATE TABLE TAB1
(
TAB1_ID INT IDENTITY(1,1),
TAB1_NAME VARCHAR(100),
CONSTRAINT PK_TAB1 PRIMARY KEY(TAB1_ID)
) ON TEST_DATA_1 –- Filegroup we created.
GO
--插入一些测试数据
INSERT INTO TAB1(TAB1_NAME)
SELECT Table_Name
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = ‘BASE TABLE’
GO
--先检查一下:
sp_help TAB1
Data_located_on_filegroup
—————————
TEST_DATA_1
index_name index_description
———- ——————————————————-
PK_TAB1 clustered, unique, primary key located on TEST_DATA_1
......
--开始move filegroup操作,删除Cluster Key,注意需要指定move to 选项
ALTER TABLE TAB1 DROP CONSTRAINT PK_TAB1 WITH (MOVE TO TEST_DATA_2)
GO
--再把主键加上
ALTER TABLE TAB1 ADD CONSTRAINT PK_TAB1 PRIMARY KEY(TAB1_ID)
GO
--最后来检查一下
sp_help TAB1
Data_located_on_filegroup
—————————
TEST_DATA_2
通过这个例子,也大概可以看到filegroup的一个典型用法: 首先定义逻辑上的filegroup, 然后把数据文件根据其特点(例如物理设备, 也可以纯粹是逻辑上的划分)放进不同的fielgroup, 在创建表时通过指定filegroup可以影响数据表的物理位置,
此外,通过把数据库对象放进不同的filegroup里,在进行backup和restore时也可以灵活对待.
[@more@]
- 在SQL Server 2005里面把表移动到另外一个filegroup里(ZT,经翻译)
- 在SQL Server 2005里面把表移动到另外一个filegroup里(ZT,经翻译)
- SQL 把一个数据库里面的某张表里的数据插入到另外一个数据库里面的一张表
- 浅谈sql server把一个表中查询出来的数据插入到另外一个表中
- 在oracle中如何用一条sql语句把一个表中多条记录写到另外一个表中
- 在vc下怎样把一个工程里的Dialog对话框移植到另外的一个工程中
- 把一个NSMutable数组里面的元素导入另外一个NSMutable数组里
- SQL数据库,如何把一张表从一个数据库中插入到另外一个数据库?
- SQL数据库,如何把一张表从一个数据库中插入到另外一个数据库
- SQL数据库,如何把一张表从一个数据库中插入到另外一个数据库?
- 把表和索引移动到另外的表空间
- 如何把索引移动到另外的表空间
- 在sql server数据库里面要把一个字符串转换为整数
- 在ASP.NET中把图片保存到SQL SERVER数据库 comy(翻译)
- c语言把一个数组里面的部分值直接复制到另外一个数组
- SQL SERVER 将表包括内容从一个数据库复制到另外一个数据库内
- 把一个数据库中的表复制到另外一个数据库
- 将一个div 里的内容显示在另外的一个div里面
- 个性化推荐算法 综述
- android 在listview中 不同的item现实不同的 布局
- DWZ富客户端框架使用
- 能够取代Linux命令行的4款GUI实用工具
- WIn7 磁盘分区工具试用记录
- 在SQL Server 2005里面把表移动到另外一个filegroup里(ZT,经翻译)
- [ThinkPHP] 1、Config.php 配置项分析
- acm第二题
- 怎么开启无线网卡开关,不要想难了
- 一、spring mvc的获取参数和传递参数
- Alfresco学习入门
- OJ-练习-长方体继承自矩形
- 7z文件解压
- "好老板只谈钱,坏老板才谈理想。"