How can I run just the statement my cursor is on in SQL Server Management Studio?

As a long time Toad for Oracle user, I have gotten used to hitting Ctrl+Enter and having just the statement under the cursor be executed.

In SQL Server Management Studio, hitting F5 runs the entire script. To run just the current statement, I have to manually highlight the statement I want, and then hit F5.

That is really annoying to me. Does anyone know of a tool with a keyboard shortcut to run just the current statement on a SQL Server? I would change tools just for this one feature.

Note: Oddly enough, even the free Toad for SQL Server does not let you run just the statement under the cursor.

88251 次浏览

Hit Ctrl-E while text is highlighted.

如果你不得不把手移动到鼠标部分,你可以按住 Ctrl 键,同时按向上或向下箭头键来立即选择一条线。

I use a workaround: I comment queries I'm not using. You can use CTRL-K, CTRL-C to comment the SQL you've highlighted. Use CTRL-K, CTRL-U to uncomment. That way, you can comment all other queries, and execute the one you're interested in with F5.

您总是可以使用命令行工具 sqlcmd 和 osql。我在 unix 命令行中使用了一个包装函式,将我的命令字符串传递给相应的命令(我认为是 isql?).我用 vi,所以也许我只是疯了; -)

好吧,我从这些答案中得到的是“不,这不可能”

编辑:

我是这样做到的:

1-下载 SQL Developer

2-下载 JTDS 驱动程序

3-按照 这些指示将该驱动程序添加到 SQLDeveloper

4-使用 SQLDeveloper 连接到 SQLServer (酷!)

5 - Run it and life is good

我认为仅仅使用管理工作室是不可能的。 但是你可以使用快捷键软件(例如 http://www.autohotkey.com/)记录一个特殊的序列并分配给热键。 In your case you need:

<home><shift-end><F5>

This will select the current line and execute it.

注意: 奇怪的是,即使是免费的蟾蜍 因为 SQLServer 不允许您运行 只是光标下的语句。

令人恼火的是,TOAD 并不信守承诺:

来自 TOAD help: < em > [ F9 to execute ]语句的一部分,它可以包含一个或多个语句。可以通过将光标放置在语句内部或邻近语句来选择语句的部分,也可以通过选择语句来选择语句。 注意: 蟾蜍认为所有的语句(包括注释)都是“相邻的”,它们之间或者与光标之间只有不到两行的空白。如果在语句执行期间发生错误,将显示一条错误消息,允许您忽略该错误并继续执行或中止执行。

我尝试了无数次,但它只是执行整个脚本。我想在用户支持组(toadss (at) yahoogroups.com)中搜索它,但雅虎拥有有史以来最愚蠢的搜索工具!它甚至找不到关键字“蟾蜍”在蟾蜍邮件组,DOH!

我认为 TOAD 是有史以来最好的查询工具,但是缺少这个特性也让我很烦恼。

更新: 找到解决方案! 我在蟾蜍邮件群里问了这个问题,得到了答案。与 Oracle 不同,必须在 SQLServer 中的每个语句之后使用关键字 去吧分隔语句。只有当您这样做时,F9按钮才能按预期工作,执行当前语句。

在 Toad for SQLServer 中,可以使用下列默认热键执行:

  • F5: 在编辑器中执行所有 SQL 语句
  • F9: 在当前游标位置执行 SQL 语句
  • Shift-F9: 从游标执行所有 SQL 语句,包括游标位置的当前 SQL 语句

然而,像‘ ercan’写的那样,您需要在每个语句后面加上‘ GO’。

SELECT TOP 5 * FROM accounts
GO


SELECT TOP 5 * FROM users
GO


SELECT TOP 5 * FROM contracts
GO

有人在 Devart dbForge SQL Complete (Management Studio 的插件)上提出了这个特性 ,现在它还处于开发阶段。让我们希望它已经完成,并且不会在开发过程中被抛弃。

SQL 完整速成版本内置了这个功能,但是如果没有自定义智能感知,就无法获得这个功能。

(这是我从火蜥蜴2007的帖子中得到的)

您可以为 SSMS 2012查看此外接程序。将光标放在要执行的语句中,然后按 CTRL + SHIFT + E

SSMS 执行者- https://github.com/devvcat/SSMS-Executor/releases

Update:
项目转移到 github 和插件重写,以支持 SSMS 2014,SSMS 2016。(此前,该项目位于 SSMS 执行者- http://ssmsexecutor.codeplex.com/的 co 。)

只需选择(突出显示)要运行的单个语句,然后按 F5键。

您可以按照以下方式组合这两个工具: 来自 dbForce 和 AuhotHotkey 的 SQL Complete。

使用 SQL Complete: 您可以通过按组合 Ctrl Shift E 在光标处执行当前语句

The reason that I used the AutoHotkey is to make life easier :-) by using just F6 to execute the current statement, by setting the following code in AutoHotkey script:

;SQL EXECUTE THE CURRENT STATEMENT
F6::
Send ^+E
return

您可以在光标处执行任何当前语句,只需按 F6即可

但有时,我的大问题是我错误地按 F5而不是 F6: D

以下工作为我... 我使用 SSMS 2012

点击工具 > 选项 > 环境键盘

2-对于 Show commands containing,设置为 查询,执行

3-对于 使用新的快捷方式,设置为 SQL 查询编辑器

4-对于 按快捷键,执行 Ctrl-Enter 组合。

点击分配。点击确定。

上面的答案帮助我创建了一个快捷方式来执行当前语句,而无需选择查询

点击 工具 > Options > Environment > Keyboard

2-对于包含 显示命令的,将其设置为 SqlComplete10.Common _ ExecuteCurrentStatement

3 - For Use new shortcut in, set it to SQL Query Editor

4-对于按快捷键(所需的快捷键) ,执行 Ctrl-Enter 组合。

点击 分配。点击 OK。

使用 Ctrl + KU选择一条线。 Then use F5 to run it.

Although it only works for single line selection, still I find it quite useful.

希望能有帮助!

If the executor add-on solution (in the top posted answer) isn't working properly, i got it to work for me (SSMS v17.8.1): The add-on adds a command under tools: 工具 > 执行内部声明.

你可以给它分配一个自定义的快捷键键,方法是转到 工具 > 选项 > 键盘,然后在“显示包含:”的命令中搜索“执行”,然后选择 工具。 然后在“按快捷键:”字段中分配你想要的按键,然后点击“分配”按钮。

我在代码没有被注释掉的时候使用了这种方法

Ctrl + K + U

(此命令突出显示当前查询行) ,然后

Ctrl + E

(此运行突出显示的查询)。

如果您想在其他行之间运行单行查询,例如:

  Select top 100 * from [dbo].[Order]


Select top 100 * from [dbo].[OrderItem]


Select top 100 * from [dbo].[OrderStatus]

Redgate's SQL Prompt extension for SSMS can do this.

这不是免费的,但是以我的经验来看,这是非常值得拥有的。比开箱即用的 SSMS 版本、标签着色、标签历史更好的智能感知(太有价值了!)代码片段、单个语句(而不仅仅是一行)执行等等。

若要仅运行较大脚本的一部分,请尝试以下操作。

步骤:

  1. 通过单击语句旁边左边距中的减号折叠要运行的 SQL 语句。这将只显示语句的第一行(用省略号“ ...”表示未显示的更多代码)和结尾“ ;”。

  2. Highlight the line.

  3. 按[ F5]键。

只运行突出显示的语句。如果要运行多个 语句,折叠每个语句并突出显示要运行的所有内容,然后单击[ F5]。 这是一个解决方案,但仍然比每次拖动和突出显示大量代码行要容易得多。

这个特性出现在用于 SSMS 的 SSMSBoost插件中(我是这个插件的开发人员) :

Shift-F5 将选择当前语句(它允许您检查当前要执行的内容)。然后按 F5并执行它。

最简单的方法是在 SQL Server Management Studio中为 CTRL + Enter组合动作 Query.Execute分配任务。

  1. 打开 Tools > Options菜单。
  2. Select Environment > Keyboard page in left pane.
  3. 查找 Query.Execute操作并选择它。
  4. "Use new shortcut in:"下拉列表中设置 SQL Query Editor
  5. Now type CTRL + Enter combination in press shortcut keys: textbox.
  6. 单击 Assign按钮。
  7. Shortcut currently used by:改为 Query.Execute (Ctrl+Enter (SQL Query Editor))
  8. Click OK. Done.

Try to define macro in SSMSBoost SSMSBoost/设置/宏:

为宏选择空闲槽 在右面板填写标题(如果你想) 添加2个命令: SelectCurrentStatement 查询,执行 指定你最喜欢的捷径 仅此而已。

使用 Shift + (向下箭头)选择单行,保存按钮比 Ctrl + KU: D lol.

Then use F5 to run it.

Hope it help too..

我同意约瑟夫 · 斯蒂恩斯的观点,但不能对此进行表决或评论。DBeaver、鼠标、 PL/SQL 开发人员、 Toad 都可以选择执行单个语句。

在我的例子中,我使用这些其他工具,它们都有选项,但是当我使用 SQLServer Management Studio 时,我有插入和/或删除的风险,因为我忘记突出显示 select 语句。

这不是一个选项,这是一个要求。然而,微软拒绝承认用户需要的逻辑上有用的特性,而是选择迎合无用的和装饰性的特性。

更新: 我想知道 Microsoft 和 SQLServer 用户是否觉得这个 bug 是一个“特性”,因为他们能够(被迫)链接 SQL 语句并同时执行。也许这就是为什么人们对这个要求充耳不闻?

微软目前正在开发 Azure Data Studio 作为首选的跨平台管理工具。事实上,安装最新版本的 SSMS 也会安装 ADS。

Azure Data Studio 可以使用 Ctrl+F5在查询窗口中运行当前查询。在 SQLNotebook 中,使用 F5执行当前单元格

选择要执行的行,然后单击 Execute 按钮