SQL Server Management Studioでカーソルが置かれているステートメントだけを実行するにはどうすればよいですか?


93

長い間Toad for Oracleユーザーとして、Ctrl + Enterを押してカーソルの下のステートメントだけを実行することに慣れてきました。

SQL Server Management Studioでは、F5を押すとスクリプト全体が実行されます。現在のステートメントだけを実行するには、必要なステートメントを手動で強調表示してから、F5キーを押す必要があります。

それは私にとって本当に迷惑です。SQL Serverで現在のステートメントだけを実行するためのキーボードショートカットを備えたツールを知っている人はいますか?この1つの機能のためだけにツールを変更します。

注:奇妙なことに、無料のToad for SQL Serverでも、カーソルの下のステートメントだけを実行することはできません。


2
注意:TOADでは、F9キーを押すと現在のステートメントグループが実行されます。グループは、「go」キーワードを使用して区切られます(「ercan」でも回答)。
crokusek

F9は、TOAD(v6.6 ++)の後のバージョンで現在のステートメントのみを実行します。ステートメントはオプションでセミコロンで区切られます。その95%は、セミコロンがない場合でもステートメントがどこで終了するかを知ることができるという点で信頼できます。
crokusek

1
10年後、これはまだ問題です。SQL Developerから来たばかりで、今でもこの問題を回避するために退屈な回避策を講じる必要があります。最近の解決策はありますか?
MattSom

1
@MattSom欲しい!
JosephStyons

回答:


37

SSMS 2012用のこのアドインをチェックアウトできます。実行するステートメント内にカーソルを置き、CTRL+ SHIFT+ を押します。E

SSMSエグゼキューター-https://github.com/devvcat/ssms-executor/releases

更新:
プロジェクトはgithubのに移動し、アドインがSSMS 2014をサポートするために再書かれ、SSMS 2016年には(以前は、プロジェクトがで、CodePlexのに住んでいたSSMSエグゼキュータ- http://ssmsexecutor.codeplex.com/。)


2
これはSSMS2012で非常にうまく機能しましたが、今はSSMS2014を実行していて、本当に見逃しています!SSMS2014ソリューションを知っている人はいますか?
サンプ

3
こんにちはsamp私はSSMS2014のツールを作り直しています。準備ができたらお知らせします。
スタニスラフ・ストヤノフ2015年

1
@ st.stoqnov-このアドインを使用したいのですが、SSMS 2013を実行しています。このバージョンをいつサポートする予定ですか?ありがとう
ナムフォード2015

1
こんにちは@namfordプロジェクトはgithubに移動され、アドインはSSMS 2014/2016をサポートするように書き直されました。
スタニスラフ・ストヤノフ2016

1
@StanislavStoyanov質問を編集して、あなたが推奨しているプロジェクトの作成者であることを伝えてください。
jpaugh

34

Ctrl+ KUを使用して行を選択します。次に、を使用F5して実行します。

単一行の選択に対してのみ機能しますが、それでも非常に便利です。

それが役に立てば幸い!!


1
ワンライナーには便利ですね。ありがとう
JosephStyons 2018年

または、
それと

CTRL-EがSSMS 18.5のファイル内のスクリプト全体を実行
Alexander

20

わかりました、それで私がこれらすべての答えから得ているのは「いいえ、それは不可能です」です。

編集:

これが私がこれを行うことができた方法です:

1- SQL Developerをダウンロード

2- jTDSドライバーをダウンロードする

3-以下の手順に従って、そのドライバーをSQL Developerに追加します

4-SQL Developerを使用してSQL Serverに接続する(クール!)

5-それを実行し、人生は良いです


3
これらはすべてOracleツールに基づいているため、これをどのように回答と見なすことができるかわかりません。質問はSSMSに関連していた
ジャック、

2
DBeaverは、このクエリも許可します。; 実行。SQL開発者よりもはるかに強力です
Dima Fomin

@Jacques単一行の実行は、Oracleが正しかった単一の機能ですが、Microsoftはそうではありませんでした。SQL開発に関する他のすべては、サブパーですが、それはない MS SQLサーバと統合します。
jpaugh 2018年

@JacquesこれはSSMSで動作させるのが簡単ではないので、この答えがあって嬉しいです。私にとってこれが最高のようです(通常、私のクエリはワンライナーではないので、複雑なクエリを記述したくないCTRL + KUを機能させるために1行...)
Betlista 2018

9

誰かがこの機能をDevart dbForge SQL Complete(Management Studioのアドオン)で提案しましたが、それはまだ開発段階です。それが完成し、開発の途中で放棄されないことを願いましょう。


2
Sqlserver14(?)の無料バージョンをインストールしたところ、動作するようです。[Devartページ](devart.com/dbforge/sql/sqlcomplete/editions.html
LosManos

私は今までそれを使用しました...今はビジュアルスタジオを起動するたびに追加が表示されています。
PAS

6

注:奇妙なことに、無料のToad for SQL Serverでも、カーソルの下のステートメントだけを実行することはできません。

TOADが約束を守らないのは本当にうんざりです。

TOADヘルプから:[F9 to execute]ステートメントの一部。1つ以上のステートメントを含めることができます。カーソルをステートメント内またはステートメントに隣接して配置するか、ステートメントを選択して、ステートメントの一部を選択できます。注:Toadは、カーソルから、または2行未満の空白行によって互いに分離されたすべてのステートメント(コメントを含む)を「隣接」していると見なします。ステートメントの実行中にエラーが発生した場合、エラーメッセージが表示され、エラーを無視して続行するか、実行を中止することができます。

私は何百万回も試しましたが、スクリプト全体を実行するだけです。ユーザーサポートグループ(toadss(at)yahoogroups.com)で検索したかったのですが、yahooにはこれまでで最も愚かな検索機能があります。ヒキガエルメールグループ、DOHでキーワード「ヒキガエル」を見つけることもできません。

TOADはこれまでで最高のクエリツールだと思いますが、この機能の欠如も本当に私を困らせます。

更新:ソリューションが見つかりました! 私はこの問題をヒキガエルのメールグループで尋ね、答えを得ました。Oracleとは異なり、SQL Serverではステートメントをそれぞれのステートメントの後にキーワードGOで区切る必要があります。これを行うと、F9ボタンが期待どおりに機能し、現在のステートメントが実行されます。


6

上記の答えは、クエリを選択せず​​に現在のステートメントを実行するためのショートカットを作成するのに役立ちました

1-[ ツール] > [ オプション] > [ 環境] > [ キーボード]をクリックします

2- 含むコマンド表示するには、SqlComplete10.Common_ExecuteCurrentStatementに設定します

3-新しいショートカットを使用するには、SQLクエリエディターに設定します

4-ショートカットキーを押す(目的のショートカットキー)には、Ctrl-Enterの組み合わせを実行します。

5-[ 割り当て]をクリックします。OKをクリックします。


これでうまくいきますが、最初に別のコマンドからショートカットを削除する必要がありました。そうしないと機能しません。
1

どうやったの?上記の指示に従うと、ctl-enterは行を強調表示するだけです(クエリが複数行にあることに注意してください)。
user441521 2016

時代遅れのようです。
アリカラカ2018

@Matt「実行」を検索したときに何かが見つかりました。つまり、Tools.ExecuteStatementショートカットをグローバルに変更した場合にのみ機能します。
jpaugh

@マットノープ!結局、それこのプラグインによって追加され、ついに動作し始めました。
jpaugh

4

回避策を使用します。使用していないクエリにコメントします。CTRL-K、CTRL-Cを使用して、強調表示したSQLにコメントを付けることができます。CTRL-K、CTRL-Uを使用してコメントを解除します。そうすれば、他のすべてのクエリにコメントを付けて、F5で必要なクエリを実行できます。


7
これはお尻の痛みです。SQLエディタで、不要なものすべてをコメントアウトする必要があるのはなぜですか?マウスをつかんだり、「Shift + Up」を35回押したりせずに、「この1つのコマンドを実行する」と明確に述べることはできませんか?
JosephStyons 2009

3
明確にするために、答えてくれてありがとう。それは有り難いです。SQL Server Mgmt Studioのインターフェイスを本当に理解しているだけです。
JosephStyons 2009

1
より良い方法を見つけたら、必ずここに投稿してください:)
Andomar

4

私はこの回避策を使用しました。コードがコメント化されていない場合

Ctrl + K + U

(このコマンドは現在のクエリ行を強調表示します)そして次に

Ctrl + E

(これは強調表示されたクエリを実行します)。

これは、次のような他の行間で単一行クエリを実行する場合に役立ちます。

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

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

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

3

管理スタジオだけでこれができるとは思いません。ただし、キーボードショートカットソフトウェア(http://www.autohotkey.com/など)を使用して、特別なシーケンスを記録し、ホットキーに割り当てることができます。あなたの場合あなたは必要です:

<home><shift-end><F5>

これにより、現在の行が選択されて実行されます。


8
ただし、現在の(複数行の)ブロック全体は選択されません。
tbone

2

Toad for SQL Serverでは、以下のデフォルトのホットキーを実行に使用できます。

  • F5:エディターですべてのSQLステートメントを実行する
  • F9:現在のカーソル位置でSQLステートメントを実行する
  • Shift-F9:現在のカーソル位置を含む、カーソルからすべてのSQLステートメントを実行します

ただし、「ercan」が書いたように、「GO」を使用して各ステートメントを分離/フォローする必要があります。

SELECT TOP 5 * FROM accounts
GO

SELECT TOP 5 * FROM users
GO

SELECT TOP 5 * FROM contracts
GO

1

気になるのは、マウスの部分に手を移動する必要がある場合は、Ctrlキーを押しながら上矢印キーまたは下矢印キーを押して、行を一度に選択できます。


6
あなたはシフトを意味します、そうですか?そして、それはより大きな声明にとって退屈です。アイデアをありがとう。
JosephStyons 2009

1

ヒットCtrl- Eテキストが強調表示されている間に。


9
わかりましたが、それでも手動で必要なものを強調表示する必要があります。私の本当の目標は、ステートメントを入力して、カーソルの下にあるものだけを実行するキーを押すことです。
JosephStyons 2009

7
私にとって、テキストが強調表示されてから「CTRL-E」が強調表示されている間は、F5を押す方が簡単です。
和基。

1

SQL Complete Expressエディションにはこれが組み込まれています。ただし、カスタムインテリセンスなしでは入手できません。

(私はSalamander2007の投稿からこれを得ました)


3
それを行う方法を告げずに、これは非常に便利ではありません
G-。

1

エグゼキューターアドオンソリューション(投稿されたトップの回答)が正しく機能していない場合、私はそれを機能させました(SSMS v17.8.1):アドオンはツールの下にコマンドを追加します:ツール>内部ステートメントの実行

[ツール]> [オプション]> [キーボード]に移動し、[次を含むコマンドを表示]で「execute」を検索して、Tools.ExecuteInnerStatementを選択することで、カスタムキーボードショートカットキーを割り当てることができます。次に、[ショートカットキーを押す:]フィールドで目的のキーストロークを割り当て、[割り当て]ボタンをクリックします。


1

この機能は、SSMSのSSMSBoostアドインにあります(私はこのアドインの開発者です):

Shift-F5キーを押すと、現在のステートメントが選択されます(これにより、現在実行する内容を確認できます)。次に、F5を押して実行します。


0

コマンドラインツールsqlcmdとosqlをいつでも使用できます。コマンド文字列を同等のものに渡すラッパー関数を使用して、UNIXコマンドラインで多くのsybaseを実行しました(これはisqlだったと思いますか?)。私はviを使っていたので、たぶん当時は狂っていたかもしれません;-)


実際にはそれは役に立ちません。SQLCMDは、バッチが終了するまでコマンドをSQL Serverに送信しません。(通常はGOで示されます。)
シャノン退職

0

実行する単一のステートメントを選択(強調表示)して、F5キーを押します。


2
質問から:現在のステートメントだけを実行するには、必要なステートメントを手動で強調表示してから、F5キーを押す必要があります。
ポールマッカーシー

1
ちょっとのように、ちょうど....あなたの車の外に出て、あなたが行きたい方向にポイントにフロントタイヤを回すとアクセルを打つ
pcnate

0

次のように2つのツールを組み合わせることができます。dbForceのSQL CompleteとAuhotHotkeyです。

SQL Completeの場合:Ctrl Shift Eの組み合わせを押すと、カーソルで現在のステートメントを実行できます

AutoHotkeyを使用した理由は、次のコードをAutoHotkeyスクリプトに設定することで、F6だけを使用して現在のステートメントを実行することにより、作業を簡単にするためです。

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

また、F6キーを押すだけで、カーソルで現在のステートメントを実行できます。

しかし、時々、私の大きな問題は、F6の代わりにF5を誤って押すことです:D


0

SSMSのRedgateのSQLプロンプト拡張機能でこれを行うことができます。

それは無料ではありませんが、私の経験では、持つ価値は十分あります。SSMSのボックスバージョン、タブの色分け、タブの履歴(とても貴重です!)、スニペット、単一のステートメント(単一の行ではない)の実行などよりも優れたインテリセンス。


0

大きなスクリプトの一部だけを実行するには、これを試してください。

手順:

  1. ステートメントの横の左マージンにあるマイナス記号をクリックして、実行するSQLステートメントを折りたたみます。これにより、最初の行(省略記号 "..."が表示され、コードが表示されないことを示す)と最後の ";"のみが表示されます。ステートメントについて。

  2. 行を強調表示します。

  3. [F5]キーを押します。

強調表示されたステートメントのみが実行されます。一度に複数のステートメントを実行する場合は、各ステートメントを折りたたみ、実行するすべてを強調表示してから、[F5]をクリックします。これは回避策ですが、毎回多数のコード行をドラッグして強調表示する必要がある場合よりもはるかに簡単です。


0

これを行う最も簡単な方法は、割り当てのためにあるCTRL+ Enterアクションのための組み合わせQuery.Executeの中でSQL Server Management Studio

  1. Tools > Optionsメニューを開く。
  2. Environment > Keyboard左ペインでページを選択します。
  3. Query.Executeアクションを見つけて選択します。
  4. ドロップダウンリストで設定SQL Query Editor"Use new shortcut in:"ます。
  5. 次にCTRL + Enterpress shortcut keys:テキストボックスに組み合わせを入力します。
  6. ボタンをクリックしAssignます。
  7. 変更Shortcut currently used by:Query.Execute (Ctrl+Enter (SQL Query Editor))
  8. をクリックしOKます。Done

現在の行のみを実行するには、Shift + Homeで行の終わりまでにすべての行を選択してから、Ctrl + Enterを実行します。
Abdullah Ilgaz

0

SSMSBoost SSMSBoost / Settings / Macrosでマクロを定義してみてください:

右パネルの塗りつぶしのキャプション(必要な場合)でマクロの空きスロットを選択し、シーケンスに2つのコマンドを追加します。


-1

以下は私にとってはうまくいきます...私はSSMS 2012を使用します

1-[ツール]> [オプション]> [環境キーボード]をクリックします

2- を含むコマンドを表示するには、Query.Executeに設定します

3-の新しいショートカットを使用するにはSQLクエリエディターに設定します

4- [ ショートカットキーを押す]の場合、Ctrl-Enterの組み合わせを実行します

5-[割り当て]をクリックします。OKをクリックします。


これでスクリプト全体が実行されます-カーソルの下にステートメントを置きます。
JosephStyons 2016

申し訳ありませんが、質問を誤解しています。
BGA
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.