web-dev-qa-db-fra.com

Comment puis-je exécuter uniquement la déclaration sur laquelle se trouve mon curseur dans SQL Server Management Studio?

En tant qu'utilisateur de Toad for Oracle de longue date, je me suis habitué à appuyer sur Ctrl + Entrée et à exécuter uniquement l'instruction sous le curseur.

Dans SQL Server Management Studio, appuyer sur F5 exécute l'intégralité du script. Pour exécuter uniquement l'instruction en cours, je dois sélectionner manuellement l'instruction que je veux, puis appuyer sur F5.

C'est vraiment énervant pour moi. Est-ce que quelqu'un connaît un outil avec un raccourci clavier pour exécuter uniquement l'instruction en cours sur un serveur SQL? Je voudrais changer d'outils uniquement pour cette fonctionnalité.

Remarque: curieusement, même le libre Toad pour SQL Server ne vous permet pas d'exécuter uniquement l'instruction sous le curseur.

65
JosephStyons

Ok, donc toutes ces réponses me donnent: "Non, ce n'est pas possible."

Modifier:

Voici comment j'ai pu faire cela:

1 - Télécharger Développeur SQL

2 - Téléchargez le pilote jTDS

3 - Suivez ces instructions pour ajouter ce pilote à SQL Developer

4 - Connectez-vous à SQL Server en utilisant SQL Developer (cool!)

5 - Courez et la vie est belle

17
JosephStyons

Vous pouvez consulter ce complément pour SSMS 2012. Placez le curseur dans l'instruction que vous souhaitez exécuter et appuyez sur CTRL+SHIFT+E

Exécuteur SSMS - https://github.com/devvcat/ssms-executor/releases

Mise à jour:
Le projet a été transféré dans github et l'addin a été réécrit pour prendre en charge SSMS 2014, SSMS 2016. (Auparavant, le projet vivait sur codeplex, à l'adresse suivante: SSMS Executor - http://ssmsexecutor.codeplex.com/ .)

34
Stanislav Stoyanov

Utilisation Ctrl+KU pour sélectionner une ligne. Puis utiliser F5 pour l'exécuter.

Bien que cela ne fonctionne que pour la sélection d'une seule ligne, je le trouve quand même très utile.

J'espère que ça aide!!

24
dust

Quelqu'un a suggéré ces fonctionnalités sur Devart dbForge SQL Complete (addon pour Management Studio), et il est toujours en phase de développement. Espérons que c'est terminé et que nous ne l'abandonnons pas à la moitié du développement.

9
Salamander2007

Remarque: curieusement, même le crapaud gratuit for SQL Server ne vous laisse pas exécuter juste la déclaration sous le curseur.

C’est vraiment énervant que TOAD ne tienne pas ses promesses:

De l'aide TOAD: [F9 à exécuter] une partie d'une instruction pouvant contenir une ou plusieurs instructions. Vous pouvez sélectionner la partie de l'instruction en plaçant le curseur dans ou à côté de l'instruction, ou en sélectionnant l'instruction. Remarque: Toad considère comme "adjacentes" toutes les instructions (y compris les commentaires) séparées du curseur ou les unes des autres par moins de deux lignes vides. Si une erreur se produit pendant l'exécution de l'instruction, un message d'erreur s'affiche vous permettant d'ignorer l'erreur et de continuer ou d'abandonner l'exécution.

Je l'ai essayé des millions de fois, mais il exécute simplement le script en entier. Je voulais le rechercher dans le groupe de soutien des utilisateurs (toadss (at) yahoogroups.com) mais yahoo a le système de recherche le plus stupide qui soit! Il ne peut même pas trouver le mot-clé "crapaud" dans le groupe de courrier du crapaud, DOH! 

Je pense que TOAD est le meilleur outil d’interrogation de tous les temps, mais l’absence de cette fonctionnalité m’agace beaucoup. 

MISE À JOUR: SOLUTION TROUVÉE! J'ai demandé à ce problème dans le groupe de messagerie toadss et obtenu la réponse. Contrairement à Oracle, vous devez séparer les instructions dans SQL Server avec le mot cléGOaprès chaque instruction. Ce n'est que si vous le faites que le bouton F9 fonctionne comme prévu en exécutant l'instruction en cours.

5
ercan

La réponse ci-dessus m'a aidé à créer un raccourci pour exécuter l'instruction en cours sans sélectionner la requête

1 - Cliquez sur Outils > Options > Environnement > Clavier

2 - Pour Afficher les commandes contenant, définissez-le sur SqlComplete10.Common_ExecuteCurrentStatement

3 - Pour Utiliser le nouveau raccourci dans, définissez-le sur Éditeur de requête SQL

4 - Pour les touches de raccourci Appuyez sur (touche de raccourci souhaitée), utilisez la combinaison Ctrl-Entrée.

5 - Cliquez sur Assigner . Cliquez sur OK.

5
Galla Balaji

J'utilise une solution de contournement: je commente des requêtes que je n'utilise pas. Vous pouvez utiliser CTRL-K, CTRL-C pour commenter le code SQL que vous avez mis en évidence. Utilisez CTRL-K, CTRL-U pour supprimer les commentaires. De cette façon, vous pouvez commenter toutes les autres requêtes et exécuter celle qui vous intéresse avec F5.

4
Andomar

Je ne pense pas qu'il soit possible d'utiliser uniquement le studio de gestion . MAIS vous pouvez utiliser un logiciel de raccourci clavier (par exemple, http://www.autohotkey.com/ ) pour enregistrer une séquence spéciale et assigné à une touche de raccourci . Dans votre cas, vous avez besoin de:

<home><shift-end><F5>

Ceci sélectionnera la ligne actuelle et l'exécutera.

3
DmitryK

Frappé Ctrl-E tandis que le texte est en surbrillance.

2
Chris McCall

Dans Toad for SQL Server, les touches de raccourci par défaut suivantes peuvent être utilisées pour l'exécution:

  • F5: Exécuter toutes les instructions SQL dans l'éditeur
  • F9: Exécuter une instruction SQL à la position actuelle du curseur
  • Maj-F9: Exécute toutes les instructions SQL à partir du curseur, y compris la position actuelle du curseur.

Cependant, comme l'a écrit 'ercan', vous devez séparer/suivre chaque énoncé avec 'GO'.

SELECT TOP 5 * FROM accounts
GO

SELECT TOP 5 * FROM users
GO

SELECT TOP 5 * FROM contracts
GO
2

Si c'est le fait de devoir déplacer votre main vers la souris qui vous gêne, vous pouvez maintenir la touche Ctrl enfoncée tout en appuyant sur une touche fléchée haut ou bas pour sélectionner une ligne à la fois. 

1
Joel Coehoorn

Il suffit de sélectionner (mettre en évidence) la seule instruction que vous voulez exécuter et appuyez sur F5.

0
J E

J'ai utilisé ce travail autour; quand le code n'est pas commenté 

Ctrl + K + U

(cette commande met en évidence la ligne de requête en cours) puis 

Ctrl + E

(cette exécution a mis en évidence la requête).

C'est utile lorsque vous voulez exécuter une requête d'une seule ligne entre quelques autres lignes comme:

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

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

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

Vous pouvez combiner les deux outils comme suit: SQL Complete from dbForce et AuhotHotkey.

Avec SQL terminé: vous pouvez exécuter l’instruction en cours au niveau du curseur en appuyant sur la combinaison Ctrl Maj E

La raison pour laquelle j'ai utilisé AutoHotkey est pour simplifier la vie :-) en utilisant simplement F6 pour exécuter l'instruction en cours, en définissant le code suivant dans le script AutoHotkey:

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

Et voilà, vous pouvez exécuter n’importe quelle instruction courante au niveau du curseur en appuyant simplement sur F6.

Mais parfois, là encore, mon gros problème est d’appuyer par erreur sur F5 au lieu de F6: D

0
Blue Cross

L'extension d'invite SQL de Redgate pour SSMS peut le faire.

Ce n'est pas gratuit, mais d'après mon expérience, cela en vaut la peine. Mieux intellisense que la version par défaut de SSMS, coloration des onglets, historique des onglets (si précieux!), Extraits, exécution unique (et pas seulement une ligne), et bien plus encore.

0
Matt Laxton

vous pouvez toujours utiliser les outils de ligne de commande sqlcmd et osql. J'ai fait beaucoup de sybase tous à la ligne de commande unix en utilisant une fonction wrapper qui a passé ma chaîne de commande à son équivalent (ce qui, je pense, était isql?) J'avais l'habitude de vi, alors peut-être que j'étais juste fou alors ;-)

0
KM.

Cette édition est intégrée à SQL Complete Express. Mais vous ne l'obtenez pas sans l'intellisense personnalisé.

(Je l'ai reçu du post de Salamander2007)

0
Shorin

Pour exécuter uniquement une section d'un script plus volumineux, essayez ceci.

Pas:

  1. Réduisez l'instruction SQL que vous souhaitez exécuter en cliquant sur le signe moins dans la marge de gauche, à côté de l'instruction. Cela montrera seulement la première ligne (avec un ellipsis "..." pour indiquer plus de code non montré) et la fin ";" pour la déclaration.

  2. Surlignez la ligne.

  3. Appuyez sur la touche [F5].

Cela affichera simplement la déclaration surlignée. Si vous souhaitez exécuter plusieurs instructions à la fois, réduisez chaque instruction et mettez en surbrillance toutes les opérations à exécuter, puis cliquez sur [F5]. C'est une solution de contournement, mais qui reste beaucoup plus simple que de devoir faire glisser et mettre en surbrillance de nombreuses lignes de code à chaque fois.

0
Tim Farrar

Si la solution complémentaire de l'exécuteur (dans la réponse affichée en haut) ne fonctionne pas correctement, je dois la faire fonctionner pour moi (SSMS v17.8.1): Le module complémentaire ajoute une commande sous outils: Outils > Exécuter Inner Statement .

Vous pouvez lui attribuer un raccourci clavier personnalisé en accédant à Outils> Options> Clavier puis en recherchant "exécuter" dans la commande "Afficher les commandes contenant:" et en sélectionnant Outils.ExecuteInnerStatement . Ensuite, assignez simplement les touches de votre choix dans le champ "Appuyez sur les touches de raccourci:" et appuyez sur le bouton Affecter.

0
inouttennis2314