SQL表名不同结构相同 如何做成复制订阅?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL表名不同结构相同 如何做成复制订阅?相关的知识,希望对你有一定的参考价值。

我想把名字不同的两个表 同订阅发布方式更新
只有这么点分~~

参考技术A 打开sql server2000 的帮助里面就有。 如何配置发布以允许订阅数据库的复制(企业管理器)
使用创建发布向导创建发布。
在 SQL Server 企业管理器中,展开 Replication 和 Publications 目录,然后右击您要为新订阅启用的发布。
对于快照复制和事务复制,单击"发布属性"中的"订阅选项"选项卡,选择"使用独立于该数据库的其它发布的分发代理程序"复选框,然后选择"始终可以使用快照文件来立即初始化新订阅"。如果您正在使用合并复制,则不需在该步骤进行任何操作。
选择"允许通过附加一个订阅数据库的复本来订阅.
参考技术B 太复杂,不过打开sql server2000 的帮助里面就有,试试把。

SQL 代码SQL复制数据表及表结构

select * into 目标表名 from 源表名
insert into 目标表名(fld1, fld2) select fld1, 5 from 源表名

以上两句都是将\'源表\'的数据插入到\'目标表\',但两句又有区别的:

第一句(select into from)要求目标表不存在,因为在插入时会自动创建。

第二句(insert into select from)要求目标表存在,由于目标表已经存在,所以我们除了插入源表的字段外,还可以插入常量,如例中的:5。

 

示例

目前有数据如下:

现在要将id为2的数据复制一条到表中,可用如下语句:

insert into test select * from test where id=2;

结果如图:

现在要将id为2的数据都复制到表中,同时把其 name 的值改为 \'f\',可用如下语句:

insert into test(id,name) select id,\'f\' from test where id=2

结果如图:

 


 对此,我们就可以扩充下,目前有数据如下:

 

1:复制表结构及数据到新表

SELECT * INTO 目的数据库名.dbo.目的表名 FROM 原表名

我们把表 test 的结构和数据复制到新表 test1:

SELECT * INTO test1 FROM test

结果如下:

 

2.备份表的一部分列(不写*而写出列的列表)

SELECT 列名1,列名2,列名3 into 目的数据库名.dbo.目的表名 from 原表名

我们把表 test1 列 id,name 的数据复制到 test2:

SELECT id,name INTO test2 FROM test1

结果如下:

 

3.备份表的一部分行(加 WHERE 条件)

SELECT * INTO 目的数据库名.dbo.目的表名 FROM 原表名 WHERE 条件

我们把 id 为1的数据从test2复制到 test3:

SELECT * INTO test3 FROM test2 WHERE id = 1

结果如下:

 

4.备份表的一部分列(不写*而写出列的列表)和一部分行(加WHERE条件)

SELECT 列名1,列名2,列名3 INTO 目的数据库名.dbo.目的表名 FROM 原表名 WHERE 条件

我们把在 id 大于0 时,数据表 test1 的列 id,age 的数据复制到 test4:

SELECT id,age INTO test4 FROM test1 WHERE id > 0

结果如下:

 

5.只复制表的结构

这种情况,我们只要设置查询条件不成立即可。我们把表 test1 的表结构复制到新表 test5:

SELECT * INTO test5 FROM test1 WHERE 1=2

结果如下:

 

6.复制的结构数据来源于多个表

其实我们要多个表的查询结构作为一个数据源就行了,我们先看看表 test2 和 test4 目前的结果和数据:

然后我再把 id 相同下的 id,name,age 数据复制到新表 test6:

SELECT id,name,age INTO test6 FROM (SELECT test2.id,name,age FROM test2 INNER JOIN test4 ON test2.id = test4.id) as a

结果如下:

以上是关于SQL表名不同结构相同 如何做成复制订阅?的主要内容,如果未能解决你的问题,请参考以下文章

SQL2000发布和复制的问题

如何从 SQL Server中手动删除复制

sql server 数据复制,订阅者只能输入发布者的别名,不能输ip地址,是否就不能做外网复制了

SQL2008复制只同步最近30天的数据该怎么做

SQL Server Replication—本地发布订阅配置

怎样设置sql server2012中的订阅