Mysql 限制SQLServer2008查询执行
在MySQL中,如果我在一个页面上有多个查询,并且每个查询都以一个;这将防止运行下一个查询(意外运行)。这确保只运行该查询 SQLServer2008中是否有类似的功能?那么,如果我在一个页面上有多个查询,是否有一个字符或运算符可以添加到查询的末尾,从而停止查询执行,从而只运行该查询 我知道通常只有突出显示的查询才会运行,但我看到整个页面都被执行了(几乎总是由于一些意外事件),因此我正在寻找一种方法来保护/防止任何意外事件的发生 编辑:我正在使用SQLServerManagementStudio(新查询页面)Mysql 限制SQLServer2008查询执行,mysql,sql,sql-server,sql-server-2008,Mysql,Sql,Sql Server,Sql Server 2008,在MySQL中,如果我在一个页面上有多个查询,并且每个查询都以一个;这将防止运行下一个查询(意外运行)。这确保只运行该查询 SQLServer2008中是否有类似的功能?那么,如果我在一个页面上有多个查询,是否有一个字符或运算符可以添加到查询的末尾,从而停止查询执行,从而只运行该查询 我知道通常只有突出显示的查询才会运行,但我看到整个页面都被执行了(几乎总是由于一些意外事件),因此我正在寻找一种方法来保护/防止任何意外事件的发生 编辑:我正在使用SQLServerManagementStudio
谢谢如果我正确理解你的问题,你可以在
RAISERROR('Oops',18,1)
在每个查询之间。这将在运行第一个(突出显示的)查询后停止执行。有多种方法可以做到这一点。我以前使用过的一些方法有: 使用
返回
:
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之前查看文件。在此上下文中,什么是页面?如果您正在使用特定的工具或实用程序来执行查询,那么您需要为这样的问题识别它们。