停止执行sql脚本

时间:2015-09-24 13:43:02

标签: sql sql-server-2008

我有一个包含许多批次的巨大SQL脚本(使用GO)。

在某些情况下,我想停止整个脚本的执行。

我尝试使用NOEXEC,但我继续收到无效的对象错误,因为我的脚本包括创建数据并向新表和列添加数据。

我不想使用RAISERROR,还有其他方法吗?

1 个答案:

答案 0 :(得分:4)

这个问题没有很好的解决方案。可以在批处理之间共享数据的一种方法是表(持久性或临时性)。因此,您可以拥有一些逻辑,这些逻辑取决于该表的某些状态或该表中特定列的值,如下所示:

--CREATE TABLE debug(col int)
--INSERT INTO debug VALUES(1)
--DELETE FROM debug


SELECT 1
GO

SELECT 2

SELECT 3

GO

IF EXISTS(SELECT * FROM debug)
    SELECT 6

GO

只需将IF EXISTS(SELECT * FROM debug)这一行添加到您要跳过的脚本中的每个位置,并根据表中是否有某些行而不执行这些代码块。