You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2019仅恢复单条备份记录至生产库遇导入导出错误求助

解决SQL Server导入导出向导中rowversion列插入报错的问题

问题原因

SQL Server的rowversion(旧称timestamp)列是系统自动维护的字段,用于跟踪行的修改状态,不允许手动插入或更新值。你遇到的报错就是因为导入向导尝试向该列写入数据,这属于硬性限制,忽略警告无法解决。


方案一:修改导入导出向导的列映射(推荐)

  1. 在导入导出向导的选择源表和视图步骤,找到目标表,点击右侧的「编辑映射」按钮。
  2. 在映射窗口中定位到DBTimeStamp列:
    • 取消该列的映射勾选,或者将目标列设置为「忽略」。
  3. 保存设置后继续完成向导,导入时SQL Server会自动为新插入的行生成rowversion值。

方案二:用T-SQL手动操作(适合单条记录)

因为你仅需恢复单条记录,直接用T-SQL更高效:

插入新记录场景

-- 从备份表查询目标记录,排除DBTimeStamp列
INSERT INTO 生产表名 (列1, 列2, ...) -- 列出除DBTimeStamp外的所有业务列
SELECT 列1, 列2, ... -- 与目标表列一一对应
FROM 备份表名
WHERE 主键列 = '目标记录的主键值'

更新现有记录场景

如果是修正已有行的数量,用UPDATE语句:

UPDATE 生产表名
SET 数量列 = b.数量列, 其他需要修正的列 = b.其他需要修正的列
FROM 生产表名 t
JOIN 备份表名 b ON t.主键列 = b.主键列
WHERE t.主键列 = '目标记录的主键值'

注意:无论插入还是更新,都不要指定DBTimeStamp列,SQL Server会自动维护该字段的值。


补充提示

rowversion仅用于行版本跟踪,不应作为业务字段使用。如果你的业务逻辑依赖该列的具体值,需要重新评估表设计。

内容的提问来源于stack exchange,提问作者Tlm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 05:35:09