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