Sql 反向脚本执行

Sql 反向脚本执行,sql,sql-server,Sql,Sql Server,是否可以反转脚本/存储过程的执行顺序 例如: 选择1 选择2 选择3 返回: 三, 二, 一, 我对变通办法、创意、魔多的魔法和“不可能”持开放态度(不过更喜欢甘道夫介入) 背景: 我正在编写一些脚本,以确定许多存储过程中出现的问题。(它们实际上只是SELECT语句)理想情况下,我希望按照存储过程中出现的顺序编写这些检查(为了可读性),但我希望它以相反的顺序执行 编辑: 这些存储过程执行的操作类型是插入和更新(它们是更大的ETL过程的一部分)。因此,当出现问题时,我想通过检查仍有多少记录需要更新

是否可以反转脚本/存储过程的执行顺序

例如:

选择1

选择2

选择3

返回:

三,

二,

一,

我对变通办法、创意、魔多的魔法和“不可能”持开放态度(不过更喜欢甘道夫介入)

背景:

我正在编写一些脚本,以确定许多存储过程中出现的问题。(它们实际上只是SELECT语句)理想情况下,我希望按照存储过程中出现的顺序编写这些检查(为了可读性),但我希望它以相反的顺序执行

编辑:

这些存储过程执行的操作类型是插入和更新(它们是更大的ETL过程的一部分)。因此,当出现问题时,我想通过检查仍有多少记录需要更新或插入来检查存储的进程到底有多远,然后一旦知道它停止的位置,我就可以删除已插入的记录并插入其余的记录。(这对于更新不太重要,因为我通常可以再次运行它)


实际上,我希望我的脚本以后进先出的方式执行查询。

如果您能够更改过程,请存储执行值并按所需顺序输出。@Jorge Campos说实话,我不太明白您的意思,但假设我无法更改正在执行检查的SP。此外,存储过程执行操作,不返回结果集。我更新了帖子,介绍了我正在测试的操作类型。如果您无法更改SP的代码,那么您最好将触发器添加到相关的表中,并在触发器中填充某种审计表。这种方法不会完全解决您的问题,因为您不知道触发器是在哪里调用的,我的意思是,假设审计表上的表
A
上插入数据的两个过程将有两行用于这两个插入,而不是来自何处的信息。你的问题的底线是:不,你不能不改变程序代码就这样做。好吧(只是要澄清一下)没有内置的魔弹,你必须从全新的角度编写代码。嗯,没问题,我只是想知道在我重新发明轮子之前是否有已知的解决方案。嗯,我可能会做的是,因为我的脚本只是select语句,用分号结束每个查询,生成一个存储过程,然后使用sys表重新创建脚本以提取定义。感谢您的帮助。如果您能够更改过程,请存储执行值并按所需顺序输出。@Jorge Campos说实话,我不太明白您的意思,但假设我无法更改正在执行检查的SP。此外,存储过程执行操作,不返回结果集。我更新了帖子,介绍了我正在测试的操作类型。如果您无法更改SP的代码,那么您最好将触发器添加到相关的表中,并在触发器中填充某种审计表。这种方法不会完全解决您的问题,因为您不知道触发器是在哪里调用的,我的意思是,假设审计表上的表
A
上插入数据的两个过程将有两行用于这两个插入,而不是来自何处的信息。你的问题的底线是:不,你不能不改变程序代码就这样做。好吧(只是要澄清一下)没有内置的魔弹,你必须从全新的角度编写代码。嗯,没问题,我只是想知道在我重新发明轮子之前是否有已知的解决方案。嗯,我可能会做的是,因为我的脚本只是select语句,用分号结束每个查询,生成一个存储过程,然后使用sys表重新创建脚本以提取定义。谢谢你的帮助。