标识里:是(不用于复制)是什么意思?

renaski 2004-07-21 10:26:13
mssql中
标识里:是(不用于复制)
是什么意思?
和单个的一个是字有什么区别?
希望祥解,谢谢!
...全文
717 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
swordmanli 2004-07-22
  • 打赏
  • 举报
回复

你说的没错!
但是,要注意你复制的表中的identity 千万不要记录在其他表中作为关联字段,因为这个值会在复制的时候,发生变化!

------------------------------------------------------------------

回复人: renaski(洛林) ( ) 信誉:100 2004-07-22 10:33:00 得分: 0


那用
“是(不用于复制)”
的话,好象就不出错了。
那就是说大多数情况下用
“是(不用于复制)”
的说嘛?


joycool78 2004-07-22
  • 打赏
  • 举报
回复
赞成
swordmanli 2004-07-22
  • 打赏
  • 举报
回复

复制是增量复制的,并不是每次统统往过搞,那还不如备份加恢复呢!
而且多个服务器可以向一个服务器复制!
比如:server_a1,server_a2,server_a3,都向server_b复制,server_b中的identity只能按照自己的规则生成,因为你不可以采用server_a1,server_a2,server_a3中的任何一个,因为server_a1,server_a2,server_a3之间的identity放到一起肯定有重复。

况且server_b仍然可以自行增加数据,数据并不是全部来自于复制。所以,其identity不能来自于任何一个复制来源的server_a1,server_a2,server_a3。

--------------------------------------------------------------------------------


TO:swordmanli(乘风破浪会有时,直挂云帆济沧海--太白)
那我想请问了
server_a的identity
不是复制到server_b了嘛?那原先server_b的数据不是都被覆盖了嘛?
那怎么还会有冲突呢?

renaski 2004-07-22
  • 打赏
  • 举报
回复
那用
“是(不用于复制)”
的话,好象就不出错了。
那就是说大多数情况下用
“是(不用于复制)”
的说嘛?
renaski 2004-07-22
  • 打赏
  • 举报
回复
TO:swordmanli(乘风破浪会有时,直挂云帆济沧海--太白)
那我想请问了
server_a的identity
不是复制到server_b了嘛?那原先server_b的数据不是都被覆盖了嘛?
那怎么还会有冲突呢?
铁歌 2004-07-22
  • 打赏
  • 举报
回复
你在复制中,如发布新复制,会有提示信息告诉你,用ALTER TABLE ID IDENTITY NOT
FOR REPLICATE ,否则可能会影响复制失败主键冲突发生!
swordmanli 2004-07-22
  • 打赏
  • 举报
回复
楼上的,server_a, server_b是指两台服务器以及其上的数据库!

Microsoft® SQL Server™ 2000 的复制是在数据库之间对数据和数据库对象进行复制和分发并进行同步以确保其一致性的一组技术。

使用复制可以将数据分发到不同位置,通过局域网、使用拨号连接、通过 Internet 分发给远程或移动用户。复制还能够使用户提高应用程序性能,根据数据的使用方式物理分隔数据(例如,将联机事务处理 (OLTP) 和决策支持系统分开),或者跨越多个服务器分布数据库处理。

复制的优点
根据复制的类型和选择的选项,复制提供不同的优点,但是 SQL Server 2000 复制的共同优点在于需要数据时数据随时随地的可用性。

其它的优点包括:

可在多个站点保存相同数据的复本。当多个站点需要为报表应用程序读取相同的数据或需要各个独立的服务器时,这一点十分有用。


从大量读取数据的应用程序(如联机分析处理 (OLAP) 数据库、数据集市或数据仓库)中分离 OLTP 应用程序。


允许更大的独立性。用户可以在连接断开的情况下继续使用数据的复本,然后在连接恢复时将对数据库所做的更改传播到其它数据库。


分离出要浏览的数据,如使用基于 Web 的应用程序浏览数据。


提高聚合读取性能。


拉近了数据与个人或团体的距离。这有助于减少因多个用户进行数据修改和查询而引起的冲突,因为数据可以通过网络进行分发,所以可以根据不同商业单位或用户的需求对数据进行分区。


将复制用作自定义备用服务器策略的一部分。复制是备用服务器策略的一种选择。SQL Server 2000 中的其它选择包括日志传送和故障转移群集,它们在服务器失败的情况下提供数据的复本。
何时使用复制
对于在分布式环境中使用支持多种硬件和软件应用程序的公司来说,存储冗余数据是必须的。另外,不同的应用程序对独立性和数据一致性有不同的需求。

有下列需求时,复制是分布式数据环境的一种解决方案:

将数据复制或分发至一个或多个站点。


依照调度方式分发数据复本。


将数据更改分发到其它服务器上。


允许多个用户和站点进行更改,然后将数据修改合并到一起,潜在地识别和解决冲突。


生成需要在联机或脱机环境下使用的数据应用程序。


生成用户可以浏览大量数据的 Web 应用程序。


可以有选择地在订阅站点上进行更改,这些站点透明地处于发布服务器的事务控制之下。
luckljtchinaren 2004-07-22
  • 打赏
  • 举报
回复
多谢 swordmanli(乘风破浪会有时,直挂云帆济沧海--太白) 热心详细的讲解!!!
lucky 2004.07.22
luckljtchinaren 2004-07-22
  • 打赏
  • 举报
回复
TO swordmanli(乘风破浪会有时,直挂云帆济沧海--太白) :
请问,"从server_a 复制到 server_b"之中的server_a、_b是指什么,复制是指哪里的复制?可以麻烦你解释一下!
futulove 2004-07-22
  • 打赏
  • 举报
回复
楼主在select * insert tablename的时候自增列不用于复制
swordmanli 2004-07-21
  • 打赏
  • 举报
回复
当时碰过这样的问题,不用于复制的话,比如你从server_a 复制到 server_b,如果identity用于复制的话,server_a的identity要直接取server_a的,但是这是一个自动增长的流水号,那门server_b可能已经存在了,那么就会有冲突,如果选为不用于复制,则会以server_b中的为主,按照server_b的内容重新生成该identity.

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧