[英]Limiting SQL Server2008 Query execution
在MySQL中,如果我在一个页面上有多个查询,我用一个结束每个查询; 这将阻止下一个查询被运行(意外运行)。 这可确保仅运行该查询。
SQLServer2008中是否有类似的功能? 那么,如果我在一个页面上有多个查询,是否可以在查询结束时添加一个字符或运算符来停止查询执行,那么只运行该查询?
我通常只了解突出显示的查询将会运行,但我已经看到整个页面被执行(几乎总是由于一些事故)所以我一直在寻找一种方法来保护/防止任何意外事件的发生。
编辑:我正在使用SQL Server Management Studio(新的查询页面)
谢谢
有多种方法可以做到这一点。 我之前使用的一些方法是:
使用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之前查看文件。
如果我正确理解了您的问题,您可以在每个查询之间放置一个RAISERROR('Oops', 18, 1)
。 这将在运行第一个(突出显示的)查询后暂停执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.