★★【sql自增量让人头疼的问题】,VFP+SQL程序员高手探讨!慎用!!
* ------------------------------ \\ 数据库情况描述
我有2个表,
表1:【部门表】,字段名[部门编号],[部门名称]。 注意:[部门编号]设成了唯一主键,且自增量。
表2:【员工表】,字段名[部门编号],[员工姓名] 注意:【员工表】的[部门编号]与【部门表】的[部门编号]关联。
* ------------------------------ \\ 出现问题描述
★★【sql自增量让人头疼的问题】,SQL程序员高手解读!慎用!!
问题:
有一天,一个操作员误删除了部门表中的所有记录,【员工表】肯定关联的【部门表】的[部门编号]无法找到,当新建或从备份的数据表中复制记录到【部门表】时,由于[部门编号]是自增量,因此,[部门编号]不是原来的了,因此,还需要再改一下【员工表】中的[部门编号]。
假如记录太多了,就要哭了。
* ------------------------------ \\ 我想问题的问题
1、能不能复制记录时,还用原来备份的[部门编号]?我不太了解那个主键中自增量【是(不用于复制)】是什么意思?
2、自增量做关联今后是不是要慎用?因为,删除影响很大,各位都是怎么用自增量的,难道自增量只是不让数据表记录重复吗?这就是他的唯一作用吗?
搞了几年sql server 很惭愧,无知呀!!!
[解决办法]
1、你的 部门编号 就不应该用 自增量,设成主键可以,但不要自增量,假如你把这个部门删除了,再新建一个部门时就无法用这个部门编号了。
2、关于还原数据(向表中插入数据)时,想对自增量字段操作,记得 SQL Server 有设置开关:
插入时要这样:
SET IDENTITY_INSERT 员工表 ON --允许将显式值插入表的标识列中。
插入语句
SET IDENTITY_INSERT 员工表 OFF