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

 


下面这个是不同数据库复制表的语句
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字段建立了索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值