【问题标题】:How to Start a SQL insert query from failed step?如何从失败的步骤开始 SQL 插入查询?
【发布时间】:2014-05-27 21:58:02
【问题描述】:

我正在运行一个 Select 查询并从中获取很多行(有时超过 500 行),然后将这些值一个接一个地插入到另一个表中。现在我想知道哪个插入步骤失败了,这样我就可以再次从那个失败的步骤开始插入,这样表就不会更新为重复值。

【问题讨论】:

  • 您可以将所有插入包装到一个事务中。然后它们要么全部成功,要么同时失败,你不需要在任意地方重新启动。
  • 你为什么一次插入一个?为什么不只做一次插入?

标签: sql


【解决方案1】:

语法可能因系统而异,但结构和流程保持不变。
当一个人将数据库部署到实时系统时,他准备了两个 SQL 脚本。

1.更改具有如下结构的脚本:

PRINT 'Doing X'

SCRIPT X 
....

GO

PRINT 'DOING Y'
SCRIPT Y
....

GO

2.Rollback 脚本,用于还原该部分脚本所做的所有更改。 还原脚本以相反的顺序执行。

REVERT SCRIPT Y

REVERT SCRIPT X

当更改脚本失败时,您将通过打印的最后一条消息知道哪个部分失败,然后您将获取在失败部分之后运行的所有回滚脚本部分并恢复更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 2016-06-21
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多