在MySQL中,如果我在一个页面上有多个查询,我用一个结束每个查询;这将阻止下一个查询被运行(意外运行)。这可确保仅运行该查询。
SQLServer2008中是否有类似的功能?那么,如果我在一个页面上有多个查询,是否可以在查询结束时添加一个字符或运算符来停止查询执行,那么只运行该查询?
我通常只了解突出显示的查询会运行,但我看到整个页面都被执行(几乎总是由于一些事故)所以我一直在寻找一种方法来保护/防止任何意外发生。
编辑:我正在使用SQL Server Management Studio(新查询页面)
感谢
答案 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)
每个查询之间。这将在运行第一个(突出显示的)查询后暂停执行。