以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  _Identify 主键问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=161515)

--  作者:ycs5801
--  发布时间:2021/3/19 22:17:00
--  _Identify 主键问题
如果多台电脑,各自用各自的sql server存储数据,那么每台电脑的_Identify这个主键是否有可能重复?我现在是想单个电脑存储数据,然后汇总数据库,但是怕这个键重复。
--  作者:ycs5801
--  发布时间:2021/3/20 0:14:00
--  
如果重复的话,我自己设置一个编号列可以吗?那这个identify这列可以删除吗?或者怎么处理,不然都同步到一个数据库了,会不会因为相同而报错?
--  作者:foxtable-hg
--  发布时间:2021/3/20 1:01:00
--  
那肯定是要重复的,设置一个不重复的规则去生成一个主键列来代替默认的主键列比较好。要不就是在汇总的时候,再重新生成一个主键列。
--  作者:有点蓝
--  发布时间:2021/3/20 9:17:00
--  
_Identify 主键如果是自增的,是绝对不可能重复的。但是就是不重复,我们也不建议使用_Identify做业务单号进行业务关联。因为这个_Identify是由数据库控制的,虽然不重复,但是不可控不由程序控制,如果迁移数据库可能会导致重置所有的_Identify值。到时业务关联就全乱了。
--  作者:ycs5801
--  发布时间:2021/3/20 10:23:00
--  
那么老师,是不是我自己设置了其它主键,这个_Identify就失效了,需要将它删除吗?是不是系统也不允许删除?不删除会不会影响系统运行?
--  作者:有点蓝
--  发布时间:2021/3/20 10:30:00
--  
可以改为其它主键,如果不想用_Identify,可以删除。如果其它主键也是自增列,一样也会有4楼所说的问题,凡是自增列都会有这个问题,和这个列名是不是_Identify没有什么关系。

如果不是自增列,要自己写代码控制录入的主键值是不会重复的,否则保存会出错。另外不是自增列,新增行不能使用table.addnew,只能使用datatable.addnew,同时新增后必须马上给主键列赋值,否则会出错

--  作者:ycs5801
--  发布时间:2021/3/20 11:30:00
--  
好的,收到,那我只能都用自编码了。