您的位置:首页 > 数据库

不同数据库之间的表的复制和为表创建索引

2012-02-24 15:55 211 查看
下面这个是不同数据库复制表的语句

go

use 原数据库名

go

select * into 目的数据库名.dbo.目的表名 from 原表名

go

比如

insert into T_GRDA SELECT * FROM newtable

当如果有重复列时,只想得到非重复列时

select distinct * into newtable from T_GRDA

可以完整的复制表,

但是有一个缺陷就是,表的主键和索引没了

下面是如何写一个是完完全全的把索引和主键和数据都能复制的语句

也就是把原来的表完完整整的拷贝到另一个数据里,丝毫没改变的,

这样:

第一种方法:

1.使用查询分析器或企业管理器生成要复制表的较完整的脚本。

所谓完整,要在脚本选项中设置包括约束、自增加等所需脚本。

2.复制脚本到存储过程或查询分析器,更改表名和约束名为新表名和约束名。

3.执行脚本。

4.使用INSERT INTO NEWTABLENAME FROM OLDTABLENAME 将数据添加到新表.

第二种方法

可以在企业管理器中生成脚本

选中表,按右键,选[所有任务]的[生成SQL脚本]

在[设置格式]中就可以看到了, 可以直接拷贝.

也可以在设置完毕后保存到文本中了.以备后用.

<二>

创建索引的作用,以及如何创建索引

SQL 在表中建立索引的作用

比如,表,usersinfo,有一列是 姓名 列。建立索引前,

如果要搜索,姓名 叫张三的人, 则需要对整个表进行扫描。

对 姓名列建立索引后,再搜索,

则只需要扫描索引 --就像一本书的目录。

索引使数据库程序无需对整个表进行扫描,

就可以在其中找到所需数据,也就是当进行查询时,系统先搜索索引,

从中找到数据的指针,再直接通过指针,直接定位到数据上,所以快。

缺点:

还有就是需要注意的,索引是查的效率高了,

但是在表中插入或更新数据时,将有额外的操作来维护索引,所以其他的效率低了,

还有占用存储空间,还有不要建立过多的索引,过多索引引起反作用!

创建索引

create index abc on stu(age);为stu表的age字段建立了索引
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: