一、复制表定义
假设我们有一个数据表Person,有Id,FirstName,LastName,Weight,Height5个列,表结构可以参考这一篇。现在我们想创建一个新表叫People,表结构和Person一模一样,也就是列名和数据类型都一致。我们可以通过复制Person表的结构而不是复制表中的记录来创建这个表,贴一下sql代码:
1、Sql Server
sql server使用带有不返回任何行的查询和INTO子句:
当使用INTO命令来复制表时,查询所返回的行都会加入新生成的表People中(复制表数据见下二),除非我们在WHERE子句条件中定义一个恒为false的条件,即1=0。
还要注意,Person表的Id是自增的主键,但是复制后新建的People表的Id没有变成主键。
2、Oracle、MySql和PostgreSQL
查询部分以及查询条件和Sql Server蛮像的。
3、DB2
|
CREATE TABLE People LIKE Person |
SELECT什么的都是浮云,就是这么简洁。从这条语句可以认为IBM完胜MS,Oracle…….吗?
二、从一个表向另外的表复制行
还是以Person和People表来举例,假如Person和People表都已经存在,把Person表中Id小于10的人复制到People表中:
1、表结构完全相同
INSERT INTO语句指定要插入的列,SELECT列的顺序和插入处写的列顺序要一致,如果没有指定则插入所有列。
当注意,当我把主键也选择的时候,Sql Server提示“当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'People' 中的标识列插入显式值”。
2、People表少一列
假设People少一列Weight,那么通过下面的sql语句
插入数据正常。
3、People表多一列
假设People表多一列,用身高减去体重,叫做HWDiff,身高和体重是float类型,现在把HWDiff设计成int型,然后执行复制:
测试也通过了,这是因为float和int类型可以相互转换(之所以说是相互转换,您可以试着将Person表的Height和Weight设计成int型,而People表的对应列设计成float型,然后再复制试试看,都可以的),当然如果把HWDiff直接设计成float型,那最好了。从2和3可以说明,我们向目标表中只要插入的列和选择的列完全一致,表结构不完全一样也可以正常复制。
分享到:
相关推荐
DB2 SQL复制是一种高效的数据同步技术,用于在不同的DB2实例之间实现实时或近实时的数据复制。这个详细手册旨在帮助新手和经验丰富的DBA理解并配置DB2的SQL复制功能,即使没有深入的DB2知识也能按照指南操作。本文将...
### DB2数据库SQL复制过程详解 #### 一、概述 本文档主要介绍DB2数据库的SQL复制过程,包括从创建数据库到配置复制环境的具体步骤。本文档基于DB2 v9.1版本,并在Windows XP环境下进行测试。通过本文档的学习,读者...
总结,"sqlA库某表到B库某表同步"涉及的是SQL Server的复制技术,用于保持多个数据库间的数据一致性。配合有效的备份策略,可以保证数据的安全性和高可用性。具体的配置步骤和细节通常会在类似"SQL2005配置复制定...
在SQL数据库管理中,视图(View)是一种虚拟表,它并不存储数据,而是基于一个或多个表的查询结果。视图的创建是为了提供数据的另一种访问方式,它可以简化复杂的查询,隐藏敏感信息,或者聚合来自不同表的数据。在...
如果需要创建一个新表,并且只想复制原表的结构而不复制数据,可以使用以下方法: 示例代码: ```sql -- 示例7:只复制表结构 CREATE TABLE new_table_name AS SELECT * FROM original_table_name WHERE 1=0; -- ...
3. 订阅服务器:订阅服务器接收复制数据。它们可以选择性地订阅发布,并且根据复制类型和选项,也可能将更改回传给发布服务器或重新发布到其他订阅服务器。 4. 发布:发布是数据库中一组要复制的项目集合。这允许...
### SQL 数据同步复制学习 #### 关于 SQL 2000 与 SQL 2005 之间的数据库发布和订阅操作说明 在企业级应用环境中,数据同步与复制是一项非常重要的技术,它能够确保不同数据库系统之间数据的一致性和准确性。SQL ...
数据中心SQL复制方案是一种高效的数据同步方法,用于在不同的SQL Server实例之间实时或近实时地传输和更新数据。这种方案在大型企业或复杂IT环境中尤为重要,因为它确保了数据的一致性和可用性,即使在多数据中心的...
### SQL Server 数据与 Excel 表的导入导出详解 #### 一、概述 在数据库管理领域,数据导入导出是一项非常重要的技能。无论是为了合并数据、归档还是数据分析,甚至是开发应用程序或升级数据库,数据迁移都是必不...
本文将详细介绍如何通过SQL Server的复制技术实现在两个SQL Server实例之间的数据同步。 #### SQL Server 数据同步概述 数据同步是在两个或多个数据库之间保持数据一致性的过程。对于SQL Server而言,其提供了多种...
- 最终将生成一个SQL脚本,其中包含一系列`INSERT`语句,用于将源表中的数据复制到另一个地方。 ### 总结 本文通过分析提供的存储过程代码,详细介绍了如何生成一个用于从SQL Server表中提取数据的SQL脚本。这种...
通过对SQL Server复制机制的理解及实施步骤的学习,我们可以有效地实现两台SQL Server之间的数据同步。无论是选择快照复制、事务复制还是合并复制,都能根据实际应用场景的需求灵活配置。此外,通过手动同步方案,也...
例如,可以选择只复制某些表,或者使用触发器和代理来确保数据的一致性。 2. **定义订阅**:创建了发布后,需要定义订阅。这包括选择订阅类型(推送订阅或拉取订阅)、指定订阅服务器以及定义订阅数据的初始同步...
【C#编写的SQL数据表提取器】是一个利用C#编程语言在Visual Studio 2005环境下开发的工具,其主要目标是提供对SQL Server 2000数据库的一系列便捷操作。这个程序旨在帮助用户高效地管理他们的数据库,执行常见的...
SQL 2000的同步复制操作是一种数据库管理和数据分发技术,主要用于在多个数据库之间保持数据的一致性。此技术对于大型企业或分布式系统来说至关重要,因为它允许数据在不同的服务器间实时或按需更新,确保所有节点上...
SQL Server 2005的订阅复制同步功能是一种强大的数据分发机制,它允许数据从一个或多个发布服务器分发到多个订阅服务器,以实现数据的实时或定期更新,确保多台服务器间的数据一致性。在本实例中,我们将探讨如何...
Oracle GoldenGate 是一款高效的数据复制工具,用于实现不同数据库之间的实时数据同步。在这个场景中,我们关注的是如何在SQL Server数据库环境下安装配置Oracle GoldenGate(OGG),并将数据从SQL Server实时同步到...
- 如果表包含标识列,复制数据后可能需要重置标识种子,以避免冲突。可以使用`DBCC CHECKIDENT`命令来实现。 - 确保处理好约束、索引和触发器。默认情况下,复制不会保留这些元素,可能需要手动创建。 - 当涉及...
- **创建发布**:在发布服务器上选择要复制的数据库对象,定义复制范围和属性。 - **创建订阅**:在订阅服务器上指定要接收哪些发布,可以是推送订阅(由发布服务器推送数据)或拉取订阅(订阅服务器主动请求数据...