限制SQL Server2008查询执行

时间:2015-08-12 15:45:11

标签: mysql sql sql-server sql-server-2008

在MySQL中,如果我在一个页面上有多个查询,我用一个结束每个查询;这将阻止下一个查询被运行(意外运行)。这可确保仅运行该查询。

SQLServer2008中是否有类似的功能?那么,如果我在一个页面上有多个查询,是否可以在查询结束时添加一个字符或运算符来停止查询执行,那么只运行该查询?

我通常只了解突出显示的查询会运行,但我看到整个页面都被执行(几乎总是由于一些事故)所以我一直在寻找一种方法来保护/防止任何意外发生。

编辑:我正在使用SQL Server Management Studio(新查询页面)

感谢

2 个答案:

答案 0 :(得分:3)

有多种方法可以做到这一点。我之前使用的一些方法是:

使用RETURN

 Select * From Table Where Foo = 'Bar'
 Return 
 Delete Table Where Foo = 'Bar'

RETURN将在该点结束批处理,使第一个查询运行,但不是第二个查询。

使用NOEXEC

Set NoExec Off
Select * From Table Where Foo = 'Bar'

Set NoExec On
Delete Table Where Foo = 'Bar'

NOEXEC将在活动时禁用所有sql语句的执行。

一些很好的老式评论:

Select * From Table Where Foo = 'Bar'
--Delete Table Where Foo = 'Bar'

您可以尝试使用其他内容(例如RAISERROR),但一般来说,最好的预防措施是尽可能将脚本分成不同的文件,并注意您正在执行的操作。在按 F5 之前,通过突出显示或查看文件。

答案 1 :(得分:0)

如果我理解你的问题,你可以放一个      RAISERROR('Oops', 18, 1) 每个查询之间。这将在运行第一个(突出显示的)查询后暂停执行。