繁体   English   中英

限制SQL Server2008查询执行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM