奇怪的问题,为何我在sqlserver数据库里定义表的主键会丢失

时间:2021-09-06 07:30:39
我在sqlserver数据库里定义表的主键,把一数据表设置其中三个字段为主键,但过了一段时间后,我又打开数据表开,奇怪,我定义的三个字段的主键居然没了,这是什么原因啊,请各位高手指教.

11 个解决方案

#1


1:有人修改
2:杀毒)
3:查看数据日志

#2


SQL Server本身不会修改,只有可能是外来因素导致

是不是用SQL语句重新创建了表?而SQL中没有添加关键字约束?
可能有人修改?

#3


是不是重新修建了数据库,然后倒了数据,或者当时就根本没有建起,而自己没有注意。
如果建了关键字,数据库本身肯定是不会掉的。

#4


修改肯定是没人修改了(客户都不怎么懂),目前是有两个客户那出现这样问题,我明明是有设置为主键,下次又有出现重复的数据,于是我一看,是数据表主键掉了,目前该表打开有上百万条记录吧,但我想这应该不是问题啊,也没重新创建此表啊,也没有关键字约束,
杀毒会影响吗?

#5


为什么不想是否D版

#6


我也觉的是奇怪啊,这个表是数据销售主表,数据都放在那,程序没去动它,也不可能重新建啊,数据一天24小时都在生成,唯一有疑问的是,我觉的是不是,我的客户端程序有时候在离线的情况下卖了很多数据在本地电脑,但后来传送大批量的数据到后台数据库此表时,对主键有没影响,平时是没问题,往往就是离线后再传数据发生此问题。

#7


bh812(与时)什么D版啊,是不是三个主键的问题呢

#8


如果你使用了DTS工具,而且是使用了到出数据(第一个选择)的话,确实会丢失主键

要选择第三个,导出表和数据,使用默认选项才行

#9


我没有使用DTS工具啊,我是在客户断另外开一线程,连接数据库表,再往里一笔一笔把离线的数据传输到那个数据表里。但是不是和DTS的功效一样就不知道了,奇怪。

#10


????
事先你先使用建表语句建表了?
然后你使用你自己的程序导入?

#11


这个表是事先已经建好的(假设名是A),没动他,我只是在前台系统里把没有传到后台此表的离线记录传输到此表,此上动作是在主程序里另外开启一个线程来处理,采用动态创建ado控件加上事务机制,把离线记录一条条上传到A表

#1


1:有人修改
2:杀毒)
3:查看数据日志

#2


SQL Server本身不会修改,只有可能是外来因素导致

是不是用SQL语句重新创建了表?而SQL中没有添加关键字约束?
可能有人修改?

#3


是不是重新修建了数据库,然后倒了数据,或者当时就根本没有建起,而自己没有注意。
如果建了关键字,数据库本身肯定是不会掉的。

#4


修改肯定是没人修改了(客户都不怎么懂),目前是有两个客户那出现这样问题,我明明是有设置为主键,下次又有出现重复的数据,于是我一看,是数据表主键掉了,目前该表打开有上百万条记录吧,但我想这应该不是问题啊,也没重新创建此表啊,也没有关键字约束,
杀毒会影响吗?

#5


为什么不想是否D版

#6


我也觉的是奇怪啊,这个表是数据销售主表,数据都放在那,程序没去动它,也不可能重新建啊,数据一天24小时都在生成,唯一有疑问的是,我觉的是不是,我的客户端程序有时候在离线的情况下卖了很多数据在本地电脑,但后来传送大批量的数据到后台数据库此表时,对主键有没影响,平时是没问题,往往就是离线后再传数据发生此问题。

#7


bh812(与时)什么D版啊,是不是三个主键的问题呢

#8


如果你使用了DTS工具,而且是使用了到出数据(第一个选择)的话,确实会丢失主键

要选择第三个,导出表和数据,使用默认选项才行

#9


我没有使用DTS工具啊,我是在客户断另外开一线程,连接数据库表,再往里一笔一笔把离线的数据传输到那个数据表里。但是不是和DTS的功效一样就不知道了,奇怪。

#10


????
事先你先使用建表语句建表了?
然后你使用你自己的程序导入?

#11


这个表是事先已经建好的(假设名是A),没动他,我只是在前台系统里把没有传到后台此表的离线记录传输到此表,此上动作是在主程序里另外开启一个线程来处理,采用动态创建ado控件加上事务机制,把离线记录一条条上传到A表