it-swarm.com.de

Formatieren von T-SQL in SSMS 2012

Nach diesem Microsoft-Dokument:

http://msdn.Microsoft.com/en-us/library/ms174205.aspx

Ich sollte in der Lage sein, meine SQL-Dokumente in SQL Server Management Studio 2012 mit Strg + K und dann mit Strg + D zu formatieren, aber wenn ich diese Kombination verwende, wird folgende Fehlermeldung angezeigt:

Die Tastenkombination (Strg + K, Strg + D) ist an den Befehl (Format Format) gebunden, der derzeit nicht verfügbar ist.

Ich versuche, Änderungen an einem vorhandenen SQL-Dokument vorzunehmen, das überhaupt nicht formatiert ist, was das Lesen extrem erschwert. Weiß jemand, wie man den Befehl Dokument formatieren verfügbar macht, damit ich diesen Code von SQL formatieren kann?

39
user11512

Die Tastaturkombination, nach der Sie suchen (Ctrl+KCtrl+D) dient der "Formatierung" - aber nicht in dem Maße, wie Sie es zu erwarten scheinen. Es ist kein Prettifier, sondern dient nur zum Einfügen korrekter Abstände und Tabulatoren wie in Tools > Options > Text Editor > Transact-SQL > General/Tabs. Wenn Sie also einen Teil des Texts markieren und die Tastaturkombination drücken, werden Tabulatoren in 4 Leerzeichen konvertiert ( Wenn Sie Leerzeichen einfügen ausgewählt haben, wenden Sie die von Ihnen angegebene Art des Einrückens usw. an.

Diese Option soll den Code NICHT lesbarer machen. Dies ist keine Funktionalität, die Management Studio derzeit nativ bietet. Es gibt zwar mehrere Optionen von Drittanbietern - einige befinden sich außerhalb von Management Studio, z.

Außerdem gibt es Add-Ins für verschiedene Ebenen der Formatierungsunterstützung im Editor:

Nun, der Grund, warum Sie die Nachricht erhalten ...

Die Tastenkombination (Strg + K, Strg + D) ist an den Befehl (Format Format) gebunden, der derzeit nicht verfügbar ist.

... liegt daran, dass SSMS diese Tastenkombination einem anderen Kontext zugeordnet hat. Die Art und Weise, wie Sie sollten in der Lage sein, dies zu "beheben" - auch hier würde es immer noch nicht das tun, was Sie möchten, selbst wenn das "Beheben" funktioniert - ist wie folgt:

  1. Gehe zu Tools > Options > Environment > Keyboard
  2. Platzieren Sie Ihren Cursor in das Feld Press shortcut keys:
  3. Schlagen Ctrl+KCtrl+D
  4. Ändern Sie das Dropdown-Menü Shortcut currently used by: Von DataWarehouse Designer In Text Editor.

    enter image description here

  5. Drücke OK

Dies ist angenommen, um die Tastaturkombination dem Texteditor zuzuordnen, aber Management Studio setzt sie zurück, nachdem Sie auf OK geklickt haben (Sie erhalten weiterhin die Fehlermeldung. Ich denke, das Problem ist das Die Dokumentation geht davon aus, dass diese Funktionalität vorhanden ist, aber Management Studio weiß es besser und bietet sie einfach nicht an (und Microsoft wird dies wahrscheinlich als Fehler in der Dokumentation abschreiben und korrigieren, anstatt als Mangel im Tool) hoffe in der Zukunft, aber vorerst dies ist ein bekanntes und weitgehend ignoriertes Problem . Sie werden feststellen, dass die Registerkarte Formatting diese die Dokumentation bezieht sich auf ist einfach nicht vorhanden (obwohl es für XML vorhanden ist, wo die Tastaturkombination funktioniert). In der Dokumentation sollte wahrscheinlich Folgendes angegeben werden:

Wendet die Einrückungs- und Leerzeichenformatierung für die Sprache an, die im Bereich Formatierung der Sprache im Texteditor angegeben ist Abschnitt des Dialogfelds Optionen . Nur im Texteditor verfügbar und nur für bestimmte Sprachen.

Eine andere Möglichkeit, sich ein Bild davon zu machen, welche Art von Formatierungsoptionen SSMS nativ bietet, besteht darin, unter Tools > Customize > Commands > Edit > Add Command... > Format Die Liste der möglichen Befehle dort anzuzeigen. Nichts, was darauf hinweist, dass Kenntnisse der tatsächlichen Sprache vorhanden sind, sodass nicht bekannt ist, wo Zeilenumbrüche eingefügt oder zusätzliche Einrückungen hinzugefügt oder Klammern usw. verwendet werden sollen.

enter image description here

Wenn Sie eine sprachspezifische Formatierung wünschen, um den vorhandenen T-SQL-Code besser lesbar zu machen, erhalten Sie von SSMS nicht viel, und Sie müssen nach anderen Optionen suchen.

42
Aaron Bertrand

Ich glaube nicht, dass dies in SSMS möglich ist. Für diese Funktion wurde ein Connect item geöffnet.

Was ich persönlich gerne für schlecht formatierten SQL-Code verwende, ist die Webanwendung auf Poor SQL . Es ist wirklich sehr gut, SQL-Code nach Ihren Vorgaben zu formatieren. Generiert sogar HTML, wenn Sie dies wünschen. Ich verwende weder das SSMS-Plug-In noch andere von ihnen beworbene Ergebnisse. Ich gehe immer einfach auf die Website, um die schnelle Formatierung vorzunehmen, und kopiere sie dann direkt in SSMS.

12
Thomas Stringer

Installieren Sie ein Add-On, das dies tut. Ich verwende die kostenlose Edition von SQL Complete: http://www.devart.com/dbforge/sql/sqlcomplete/ , die einige grundlegende SQL-Formatierungsfunktionen bietet. Es lässt sich in SSMS integrieren und verwendet Strg + K, D.

6
Robert Niestroj

SqlSmash ist ein kommerzielles Tool, mit dem Sie SQL (und vieles mehr) in SSMS 2012 und 2014 formatieren können. Die Standardtastenkürzel lautet (Strg + K, Strg + D).
Haftungsausschluss: Ich bin der Entwickler dahinter.

2
Latish