按顺序执行SQL Server存储过程并发出通知

时间:2018-09-20 07:47:35

标签: sql sql-server

对于Microsoft SQL Server,我想按顺序执行存储过程,并在以后的过程仍在执行时使用通知并使用结果。例如,下面的代码仅在完成所有3个过程之后才打印3个句子“ Update_TableX_done”。

'Update_TableX'是存储过程,可以将一些更新的数据插入表中。

我可以设置为在每个EXEC语句完成之后执行打印吗?

在更新Table2时可以使用Table1的结果吗?

如果Update_Table2的过程失败,我可以保留Update_Table1的结果吗?

或者,是唯一在Update_Table1完成后才手动启动Update_Table2的解决方案吗?

    EXEC [dbo].[Update_Table1]
    PRINT 'Update_Table1_done'
    EXEC [dbo].[Update_Table2]
    PRINT 'Update_Table2_done'
    EXEC [dbo].[Update_Table3]
    PRINT 'Update_Table3_done'

1 个答案:

答案 0 :(得分:1)

PRINT命令在缓冲区已满时刷新消息。要触发立即刷新消息到消息流,请使用带有WITH NOWAIT选项的RAISEERROR。

raiserror('Test 1', 10, 1) with nowait;
waitfor delay '00:00:05';
raiserror('Test 2', 10, 1) with nowait;