数据库
首页 > 数据库> > mysql-限制SQL Server2008查询执行

mysql-限制SQL Server2008查询执行

作者:互联网

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之前,通过突出显示或查看文件的方式.

标签:sql-server-2008,sql,mysql,sql-server
来源: https://codeday.me/bug/20191119/2039582.html