如何在进行数据库备份时保持身份
在进行数据库备份后,当我尝试恢复时,身份的种子被重置为0
。所以当我尝试插入任何新值时,id
(主键)开始1
。如何在进行数据库备份时保持身份
现在的问题是,我有关系数据表。在某些操作之后,从table x
开始说数据移动到table y
。但是,当种子设置为0时,table x
和table y
冲突的id值。这给了我错误。
备份时有什么办法,我们也可以保存身份的价值。
P.S. :
- 数据库的大小是巨大的,手动更改旁边的 不可能。
- 仅当表格为空时,标识的种子才重置为
0
。
编辑:
对不起,我有点混乱,由备份,我的意思是出口(我的坏)。因为空表的种子被设置为默认值,所以我的表中的主键发生冲突,所以在导出数据库时,我还需要存储每个表的标识值。
有什么办法可以做到吗?
身份种子是不复位或修改使用
- BACKUP DATABASE
- RESTORE DATABASE
您必须导出和导入的数据,这是不备份时和恢复。
我再说一遍
- BACKUP DATABASE是唯一的方式来备份数据库
- RESTORE DATABASE是恢复数据库的唯一方式,
如果你想保留导出/导入方法,然后只需使用DBCC CHECKIDENT来重置种子。
也阅读了本明白为什么种子设置为零:
SQL server identity column values start at 0 instead of 1
抱歉说备份,是的,我出口我的数据库,需要保持身份种子的价值。有什么方法可以建议。 –
正如我所说,DBCC CHECKIDENT – gbn
我有大约100张桌子。在每个表上触发DBCC CHECKIDENT是不可行的。 –
把这个一读,可能会有帮助:https://dba.stackexchange.com/questions/163876/restoring-database -backup-makes-identity-column-start-at-1 – Leonidas199x
这不是普通的备份或还原行为。确保您的工具或脚本不会导致重置。 – MWillemse
@ Leonidas199x已经通过了。但那篇文章没有太多帮助。 –