您的位置:首页 > 数据库 > MySQL

MySql-MSSQL数据库复制表数据

2012-11-22 15:13 369 查看
转载自:点击打开链接

//自己mark 留个爪 测试第一个有用 


//两张表 存在 且 ID均为自增长 不可用* 选择好列排除ID 即可

数据库表间数据复制 --1.表结构相同的表,且在同一数据库(如,table1,table2)

 Sql :insert into table1 select  *   from table2 (完全复制)

           insert into table1 select  distinct  *  from table2(不复制重复纪录)

           insert into table1 select  top 5 *  from   table2 (前五条纪录)

--2.不在同一数据库中(如,db1 table1,db2 table2)

 sql:   insert into db1..table1 select  *   from db2..table2 (完全复制)

           insert into db1..table1 select  distinct  *  from db2table2(不复制重复纪录)

           insert into tdb1..able1 select  top 5 *  from   db2table2 (前五条纪录)

sqlserver中取随机数的两种方法

   a.创建一个表Rand,字段是:RandomNum ,存储0到9的数据。

      使用下面SQL语句可产生随机数:

select top 1 RandomNum from Rand order by NewID()

   b.使用sqlserver提供的Rand()函数

select cast( floor(rand()*N) as int) 

--产生0到N-1之间的随机数

select cast(ceiling(rand() * N) as int)

--产生1到N之间的随机数

在数据库中几个常用的日期格式转换

    日期格式转换也是经常用到的,通常2008-04-12和20080412 这两种格式用的比较多,下面列出一些常用的:

CONVERT(VARCHAR(10),GETDATE(),120)

--返回2008-04-12

CONVERT(VARCHAR(10),GETDATE(),20)

--返回2008-04-12

CONVERT(VARCHAR(10),GETDATE(),112)

--返回20080412

CONVERT(VARCHAR(10),GETDATE(),111)

--返回2008/04/12

 

数据库表间数据复制分类

在利用数据库开发时,常常会将一些表之间的数据互相导入。当然可以编写程序实现,但是,程序常常需要开发环境,不方便。最方便是利用sql语言直接导入。既方便而修改也简单。以下就是导入的方法。

1、   表结构相同的表,且在同一数据库(如,table1,table2)

Sql :insert into table1 select   *    from table2 (完全复制)

            insert into table1 select   distinct   *   from table2(不复制重复纪录)

            insert into table1 select   top 5 *   from   table2 (前五条纪录)

2、    不在同一数据库中(如,db1 table1,db2 table2)

sql:    insert into db1..table1 select   *    from db2..table2 (完全复制)

            insert into db1..table1 select   distinct   *   from db2table2(不复制重复纪录)

            insert into tdb1..able1 select   top 5 *   from   db2table2 (前五条纪录)

3、      表结构不同的表或复制部分纪录(如,dn_user,dn_user2)

a.     建一个新表[DN_UserTemp](在老表dn_user上增加一列)

CREATE TABLE [DN_UserTemp] ( [Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL)

[Id] [idtype] NOT NULL ,

[Name] [fntype] NOT NULL ,

[Descript] [dstype] NULL ,

[LogonNm] [idtype] NOT NULL ,

[Password] [idtype] NULL ,

[Gender] [char] (1) NULL ,

[Quited] [booltype] NOT NULL,

[OffDuty] [booltype] NOT NULL ,

[Stopped] [booltype] NOT NULL, 

[OSBind] [booltype] NOT NULL, 

[Domain] [idtype] NULL ,

[EMail] [fntype] NULL ,

[UnitId] [idtype] NULL ,

[BranchId] [idtype] NULL ,

[DutyId] [idtype] NULL ,

[LevelId] [idtype] NULL ,

[ClassId] [idtype] NULL ,

[TypeId] [idtype] NULL ,

[IP] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,

[ExpireDT] [datetime] NULL ,

[Sort] [int] NOT NULL ,

[AllowDel] [booltype] NOT NULL,

[UnitChief] [booltype] NOT NULL, 

[BranchChief] [booltype] NOT NULL ,

[UnitDeputy] [booltype] NOT NULL ,

[BranchDeputy] [booltype] NOT NULL ,

      

[Num] [numeric](18, 0) IDENTITY (1, 1) NOT NULL

) ON [PRIMARY]

b. 将dn_uer2的数据拷入dn_usertemp

sql:insert into dn_usertemp select * from dn_user2

c.将dn_usertemp 拷入dn_user

sql:

declare   @i int

declare   @j int

declare   @Name fntype

set @i=1

select @j=count(*) from dn_usertemp

while @i<@j 1

begin

select @Name=Name from dn_usertemp where Num=@i

print @Name

insert into dn_user (Name) values (@Name) where Num=@i

select @i=@i 1

end

 

 

MySql数据库复制表数据

将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下:

CREATE TABLE mytbl_new LIKE production.mytbl;

INSERT mytbl_new SELECT * FROM production.mytbl;

第一个命令是创建新的数据表 mytbl_new ,并复制 mytbl 的数据表结构。

第二个命令是讲数据表 mytbl 中的数据复制到新表 mytbl_new 。

注:production.mytbl是指定要复制表的数据库名称为 production 。它是可选的。

假如没有production. ,MySQL数据库将会假设mytbl在当前操作的数据库。

 

另外:在mysql数据库中复制数据为:

select * into desTable from sourceTable在mssql中支持,在mysql中不支持

insert into desTable select * from sourceTable
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: