Frage

habe ich an einem Ort zu arbeiten, wo eine gängige Praxis zu verwenden Pair Programming war. Ich erinnere mich, wie viele kleine Dinge, die wir voneinander lernen könnten, wenn auf dem Code arbeiten zusammen. Aufnehmen neue Verknüpfungen, Code-Snippets usw. mit der Zeit deutlich verbessert unsere Effizienz des Schreibens Code.

Da ich mit SQL Server zu arbeiten begann ich habe auf meinem eigenen gelassen worden. Die besten Gewohnheiten würde ich normalerweise von Pick arbeitet zusammen mit anderen Menschen, die ich jetzt nicht tun kann.

So, hier ist die Frage:

  • Was sind Sie Tipps, effizient Schreiben TSQL-Code mithilfe von SQL Server Management Studio?
  • Bitte halten Sie die Tipps zu 2 - 3 Dinge / Verknüpfungen, Sie denken, verbessern Sie die Geschwindigkeit von Codierung
  • Bitte bleiben im Rahmen von TSQL und SQL Server Management Studio 2005/2008 Wenn das Merkmal spezifisch für die Version Management Studio bitte angeben: z.B. „Kompatibel mit SQL Server 2008 nur "

EDIT:

Ich fürchte, dass ich einige von Ihnen falsch verstanden worden sein könnte. Ich bin nicht auf der Suche nach Tipps für eine effiziente TSQL Code zu schreiben, sondern um Rat, wie sich der Codierungsprozess effizient Management Studio zu beschleunigen.

Die Art der Antworten, die ich suche, sind:

  • Verwendung von Vorlagen,
  • Tastatur-Shortcuts,
  • Verwendung von IntelliSense Plugins usw.

Im Grunde diese kleinen Dinge, die die Codierung Erfahrung etwas effizienter und angenehmer zu machen.

War es hilfreich?

Lösung 2

Gemeinde im Besitz Wiki Antwort - fühlen Sie sich frei, um Kommentare zu bearbeiten oder hinzufügen:

Tastenkombinationen

  • F5 , STRG + E oder ALT + X - ausführen zur Zeit ausgewählt TSQL-Code
  • STRG + R - anzeigen / ausblenden Ergebnisfenster
  • STRG + N - öffnen Neue Abfrage Fenster
  • STRG + L - Anzeige Abfrageausführungsplan

Bearbeiten von Shortcuts

  • STRG + K + C und STRG + K + U - Kommentar / uncomment ausgewählter Codeblock (vorgeschlagen von Ungeschnittene)
  • STRG + SHIFT + U und STRG + SHIFT + L - Änderungen ausgewählter Text in Groß- / Kleinschreibung
  • SHIFT + ALT + Text auswählen - wählen / Cut / Copy / einen rechteckigen Block von Text einfügen

Addons

Weitere Tipps

  • Mit Komma Präfix Stil (vorgeschlagen von Cade Roux)
  • Verwenden von Tastenkürzel (vorgeschlagen von kcrumley)

Nützliche Links

Andere Tipps

Hier finden Sie aktuelle Red Gate SQL Prompt - es ist eine große Produkt (wie die meisten von Red Gate Beiträge)

Inform SQL ist auch ein großes kostenloses (online) Werkzeug für lange Verfahren der Formatierung, die manchmal aus bekommen Hand.

Abgesehen davon, dass ich von schmerzlicher Erfahrung gelernt, es ist eine gute Sache zu voraus jeder DELETE Anweisung mit einem BEGIN TRANSACTION. Sobald Sie sicher sind, dass Ihre Aussage nur zu löschen, was es soll, kann man dann COMMIT.

mich gespeichert auf einer Reihe von Gelegenheiten; -)

1 für SQL-Eingabeaufforderung.

Etwas wirklich einfach, dass ich glaube, ich hatte noch nie gesehen -, die mit fast jeder SQL-Umgebung (und anderen Sprachen auch) arbeiten:

Nach 12 Jahren SQL-Codierung, habe ich vor kurzem ein Konvertit zum Komma-Präfix Stil worden, nachdem es in einigen SSMS generierten Code zu sehen, habe ich es sehr effizient gefunden. Ich war sehr überrascht, dass ich hatte diesen Stil noch nie zuvor gesehen, zumal es immens meine Produktivität gesteigert hat.

SELECT
t.a
,t.b
,t.c
,t.d
FROM t

Es macht es wirklich einfach, Auswahllisten, Parameterlisten, um durch Listen zu bearbeiten, Gruppe von Listen etc. Ich finde, dass ich viel weniger Zeit bin Ausgaben täuscht mit dem Hinzufügen und Komma vom Ende der Listen zu entfernen nach Cut-and-Paste-Operationen - ich denke, es ist einfacher funktioniert, weil man fast immer die Dinge am Ende hinzufügen und mit postfix Komma, das erfordert, dass Sie die Cursor mehr bewegen

.

Versuchen Sie es, Sie werden überrascht sein, -. Ich weiß, ich war

Meine Lieblinge schneller Tipp ist, dass, wenn Sie einen Tabellennamen im Objekt-Explorer erweitern, nur das Wort colums auf die Abfrage Bildschirm ziehen eine Liste aller Spalten in der Tabelle in die Abfrage gestellt. Viel einfacher, nur diejenigen, löschen Sie nicht wollen, als die, die auf den Typ Sie wollen, und es ist so einfach, verhindert es die Menschen von den wirklich schrecklich select * Syntax. Und es verhindert Tippfehler. Natürlich können Sie individuell Spalten als auch ziehen.

eine Entität in einer Abfrage markieren und mit ALT + F1 läuft sp_help für sie, so dass Sie eine Aufschlüsselung aller Spalten, Indizes, Parameter usw.

Versuchen Sie immer den kleinsten Datentyp zu verwenden, die Sie und Index alle Felder am meisten Abfragen verwendet.

Versuchen Sie serverseitige Cursors so weit wie möglich zu vermeiden. Immer an einem sogenannten Set-basierten Ansatz "anstelle eines‚Verfahrensansatz‘für den Zugriff und Manipulation von Daten. Cursor kann häufig durch die Verwendung von SELECT-Anweisungen stattdessen vermieden werden.

Verwenden Sie immer den grafischen Ausführungsplan in Query Analyzer oder SHOWPLAN_TEXT oder SHOWPLAN_ALL Befehle Ihre Fragen zu analysieren. Stellen Sie sicher, Ihre Fragen Sie ein anstelle eines „Index Scan“ oder „Index suchen“ „Table-Scan.“ Ein Table-Scan oder ein Index-Scan ist eine sehr schlechte Sache und sollte möglichst vermieden werden. Wählen Sie die richtigen Indizes auf den rechten Spalten. Verwenden Sie die lesbare ANSI-Standard-Klauseln Join statt der alte Stil verbindet. Mit ANSI beitritt, wird die WHERE-Klausel nur zum Filtern von Daten verwendet. Wo, wie mit älterem Stil verbindet, die WHERE-Klausel Griffe sowohl den Zustand und die Filterung von Daten verbinden.

Sie Abfrage nicht die Front-End-Anwendungen lassen / manipuliert die Daten direkt SELECT mit oder INSERT / UPDATE / DELETE-Anweisungen. Erstellen Sie stattdessen gespeicherte Prozeduren, und lassen Sie Ihre Anwendungen diese gespeicherten Prozeduren zuzugreifen. Dies hält den Datenzugriff sauber und konsistent über alle Module der Anwendung, und zur gleichen Zeit in der Datenbank, um die Business-Logik zu zentralisieren.

Sprechen über Stored Procedures, nicht gespeicherten Prozedur Namen Präfix mit „sp_“. Das Präfix sp_ wird für System gespeicherte Prozedur reserviert, die mit SQL Server versandt. Jedes Mal, wenn SQL Server einen Prozedurnamen mit sp_ begegnet starten, versucht es zuerst die Prozedur in der Master-Datenbank zu finden, dann ist es für alle Qualifikations sieht (Datenbank, Besitzer) vorgesehen ist, dann versucht es dbo als Besitzer. So kann man wirklich Zeit bei der Suche nach der gespeicherten Prozedur durch die Vermeidung von „sp_“ Präfix speichern.

Vermeiden Sie dynamische SQL-Anweisungen so viel wie möglich. Dynamische SQL neigt als statischer SQL langsamer zu sein, da SQL Server einen Ausführungsplan jedes Mal zur Laufzeit erzeugen muss.

Wenn möglich, versuchen Sie die integrierte Authentifizierung zu verwenden. Es bedeutet, vergessen Sie die sa und andere SQL-Benutzer, die Microsoft User Provisioning Infrastruktur und halten immer SQL-Server, up-to-date mit allen erforderlichen Patches. Microsoft eine gute Arbeit zu entwickeln, zu testen und Patches Freigabe aber es ist Ihre Aufgabe, sie anzuwenden.

Bei amazon.com Bücher mit guten Bewertungen über sie und kaufen Sie es!

STRG + I inkrementelle Suche . Hit F3 oder STRG + I , um durch die Ergebnisse.

Wenn Sie von Objekt-Explorer Knoten Spalten für eine Tabelle ziehen legt sie eine CSV-Liste der Spalten in dem Abfragefenster für Sie

Nur eine winzige - rechteckige Auswahl ALT + DRAG kommt in sehr praktisch für das Kopieren + Einfügen vertikal ausgerichtete Spalt Listen (zum Beispiel, wenn manuell eine massive UPDATE schreiben). Schreiben TSQL ist über das einzige Mal, dass ich es jemals nutzen!

Für Sub-Abfragen

Objekt-Explorer> Rechtsklick auf einen Tisch> Script-Tabelle als> SELECT zu> Zwischenablage

Dann können Sie einfach im Abschnitt einfügen, wo Sie wollen, dass als Unterabfrage.

Vorlagen / Snippets

Erstellen Sie eigene Vorlagen mit nur einem Code-Schnipsel. Dann stattdessen öffnen Sie die Vorlage als neues Dokument einfach per Drag es Ihnen aktuelle Abfrage, um das Snippet eingefügt.

Ein Ausschnitt kann einfach ein Satz-Header mit Kommentaren oder einfach nur ein paar einfaches Stück Code.

Implizite Transaktionen

Wenn Sie nicht eine Transaktion, bevor Sie löschen Abschluss an beginnen denken Sie daran, Sie zu Optionen gehen und implizite Transaktionen setzen standardmäßig in alle Ihre Fragen. Sie erfordern immer eine explizite COMMIT / Rollbacks.

Isolationsstufe

Optionen Gehen und Isolationsstufe auf standardmäßig READ_UNCOMMITED. Auf diese Weise brauchen Sie nicht einen NOLOCK in allen Ad-hoc-Abfragen zu geben. gerade nicht vergessen, den Tabellenhinweis zu platzieren, wenn eine neue Ansicht oder gespeicherte Prozedur zu schreiben.

Standarddatenbank

Ihre Login verfügt über eine Standard-Datenbank vom DBA festgelegt (Für mich ist in der Regel das unerwünscht man fast jedes Mal).

Wenn Sie wollen, dass es eine andere sein, weil das Projekt Sie gerade arbeiten.

"Registrierte Server Bereich> Rechtsklick> Eigenschaften> Verbindungseigenschaften tab> Verbindung zur Datenbank.

Multiple Logins

(Diese Sie könnte allerdings bereits getan)

Registrieren Sie die Server mehrere Male, jedes mit einem anderen Login. Sie können dann den gleichen Server in dem Objekt-Browser geöffnet mehrmals (jeweils mit einem anderen Login).

Um die gleiche Abfrage ausführen Sie bereits mit einem anderen Login geschrieben, anstelle des Kopierens der Abfrage tun, nur einen Rechtsklick auf den Abfragebereich> Verbindung> Verbindung ändern.

Eine andere Sache, die die Genauigkeit verbessern hilft, was ich nicht wirklich ein Management Studio Spitze ist aber ein mit T-SQL selbst.

Jedes Mal, wenn ich ein Update oder lösche Anweisung zum ersten Mal schreiben, übernehme ich wählt hinein, so dass ich sehen kann, was Datensätze betroffen sein.

Beispiele:

select t1.field1,t2.field2
--update t
--set field1 = t2.field2 
from  mytable t1
join myothertable t2 on t1.idfield =t2.idfield
where t2.field1 >10

select t1.* 
--delete t1
from mytable t1
join myothertable t2 on t1.idfield =t2.idfield
where t2.field1 = 'test'

(beachten Sie, ich verwendet select * hier nur zur Illustration, würde ich normalerweise nur die wenigen Felder auswählen Ich muss sehen, dass die Abfrage richtig ist. Manchmal kann ich Felder aus den anderen Tabellen sehen müssen inder sowie die Aufzeichnungen beitreten ich plane, löschen, um sicherzustellen, das die Art und Weise gearbeitet join ich dachte, es würde)

Wenn Sie diesen Code ausführen, führen Sie die Auswahl zuerst, um sicherzustellen, richtig ist, dann kommentieren Sie die Auswahlleitung (en) und Kommentar- der Lösch- oder Aktualisierungs Teile. Durch es auf diese Art und Weise zu tun, laufen Sie nicht aus Versehen die Lösch- oder Update, bevor Sie sie überprüft haben. Vermeiden Sie auch das Problem des Vergessens die Auswahl verursacht das Update kommentieren Sie alle Datensätze in der Datenbank-Tabelle zu aktualisieren, die auftreten können, wenn Sie diese Syntax verwenden und Kommentar- der select, um sie auszuführen:

select t1.field1,t2.field2
update t
set field1 = t2.field2 
--select t1.field1,t2.field2
from  mytable t1
join myothertable t2 on t1.idfield =t2.idfield
where t2.field1 >10

Wie Sie aus dem obigen Beispiel sehen können, wenn Sie die Auswahl Kommentar- und vergessen es wieder auf Kommentar, oops Sie einfach die ganze Tabelle aktualisiert und liefen dann eine Auswahl, wenn Sie gedacht, um nur das Update auszuführen. Jemand tat genau das in meinem Büro dieser Woche hat es so nur eine Person aller aus Kunden machen könnte die Kunden-Websites anmelden. So vermeiden Sie dies zu tun.

Mit der Schaltfläche Filter im Objekt-Explorer ein bestimmtes Objekt (Tabelle, gespeicherte Prozedur, etc.) schnell zu finden, aus dem teilweisen Text im Namen oder Objekte finden, die zu einem bestimmten Schema gehören.

Ich habe eine geplante Aufgabe, die jede Nacht jedes Objekt schreibt (Tisch, sproc, etc.) in eine Datei. Ich habe die Volltextsuche Indizierung Satz auf dem Ausgabeverzeichnis, so dass, wenn ich bin auf der Suche nach einer bestimmten Folge (beispielsweise eine Konstante), die irgendwo in der DB begraben ist, kann ich es sehr schnell finden.

Im Management Studio können Sie die Aufgaben verwenden> Gene Scrips ... Befehl, um zu sehen, wie diese auszuführen.

ich Setup wie die Tastenkombination STRG + F1 als sp_helptext , da dies ermöglicht es Ihnen, eine gespeicherte Prozedur zu markieren, und schauen schnell es ist Code. Ich finde es ist eine schöne Ergänzung zu dem Standard ALT + F1 Sp_help Verknüpfung.

Ich bin Entwickler von SSMSBoost Add-in, dass vor kurzem für SSMS2008 / R2 veröffentlicht wurde, war die Absicht hinzuzufügen Funktionen hinzuzufügen, die täglichen Routineaufgaben beschleunigen:

shorcuts: F2 - (in SQL-Editor): Skriptobjekt befindet unted Cursor

STRG + F2 - (in SQL-Editor): Finden Sie Objekt unter dem Cursor befindet sich im Objekt-Explorer und konzentrieren + Es enthält Shortcut-Editor, das heißt in SSMS2008 fehlt (kommt in SSMS2012)

auch SSMSBoost fügt Symbolleiste mit Schaltflächen:

  • Syncronize SQL Editor Verbindung Explorer Objekt (fokussiert aktuelle Datenbank im Objekt-Explorer)
  • Verwalten Sie Ihre eigenen bevorzugten Verbindungen und zwischen ihnen wechseln durch Combo-Box (einschließlich Sprünge zwischen Servern)
  • Auto-Ersatz: Eingabe von " sel " wird es durch select * from ersetzen und Sie können auch fügen Sie Ihre eigenen Token-Ersatz-Paare
  • und einige weitere nützliche Features

SSMSBoost Symbolleiste

Zeigen Sie die Abfrage-Designer mit STRG + SHIFT + Q

Nutzen Sie die try / catch-Funktionalität für Fehler zu kontrollieren.

Adam Machanic Expert SQL Server 2005 Programmierung ist eine großartige Ressource für feste Techniken und Praktiken.

Mit Verkettungsbesitz für gespeicherte Prozeduren.

Nutzen Sie Schemata Datensicherheit und Rollen zu erzwingen.

Verwenden Objekt-Explorer-Details statt Objekt-Explorer für Ihre Tabellen sehen, auf diese Weise Sie einen Buchstaben drücken und es auf die erste Tabelle gehen mit diesem Buchstaben-Präfix.

Wenn Sie mit den Entwicklern arbeiten, oft einen Splitter von Code, der als eine lange Zeile Code formatiert ist, dann SQL ziemlich Drucker Add-on für SQL Server Management Studio kann er hilft viel mit mehr als 60 + Formatierer Optionen. http://www.dpriver.com/sqlpp/ssmsaddin.html

Lesezeichen verwenden ist ideal, um Ihre geistige Gesundheit zu halten, wenn Sie mit dem Sie arbeiten oder eine wirklich lange Prozedur zur Fehlerbehebung. Angenommen, Sie sind mit einer abgeleiteten Feld in einer äußeren Abfrage arbeiten und es ist Definition weiteren 200 Zeilen nach unten innerhalb der inneren Abfrage. Sie können beide Standorte Lesezeichen und dann schnell hin und her zwischen den beiden gehen.

Wenn Sie eine Menge sprocs für eine API von einer Art zu schreiben. Sie können diese Tools wie ich geschrieben, als ich ein Programmierer war. Sagen Sie bitte eine 200 Spalten Tabelle, die eine sproc geschrieben haben müssen / Update einfügen und ein anderes zu löschen. Weil Sie nicht möchten, dass Ihre Anwendung direkt auf die Tabellen zugreifen. Nur der Deklarationsteil wird eine mühsame Aufgabe sein, aber nicht, wenn ein Teil des Codes wird für Dich geschrieben. Hier ist ein Beispiel ...

CREATE PROC upsert_Table1(@col1 int, @col2 varchar(200), @col3 float, etc.)
AS
BEGIN
  UPDATE table1 SET col1 = @col1, col2 = @col2, col3 = @col3, etc.
  IF @@error <> 0
    INSERT Table1 (col1, col2, col3, etc.)
    VALUES(@col1, @col2, @col3, etc.)
END
GO
CREATE PROC delete_Table1(@col1)
AS DELETE FROM Table1 WHERE col1 = @col1

http://snipplr.com / view / 13451 / spcoldefinition-oder-writing-Upsert-sp-in-a-Snap /
Hinweis: Sie können auf den ursprünglichen Code und Artikel bekommen können im Jahr 2002 geschrieben
(I alt fühle mich jetzt!) http: //www.planet-source-code .com / vb / scripts / ShowCode.asp? txtCodeId = 549 & lngWId = 5

Mit TAB auf markierten Text wird es einrücken. Nizza für Ihren Code in einem lesbaren Format leicht zu arrangieren. Auch SHIFT + TAB wird Unindent.

F5, um die aktuelle Abfrage auszuführen ist ein leichter Sieg, danach, die generischen MS Editor Befehle von STRG + K + C zu Kommentar den ausgewählten Text aus und dann STRG + K + U zu uncomment.

  • ALT+SHIFT + Auswahl

Dies ist ein großer, die ich vor kurzem entdeckt - es läßt Sie einen rechteckigen Querschnitt von Text unabhängig von Zeilenumbrüchen auswählen. Sehr praktisch für Clipping schnell eine Unterabfrage oder eine Liste aus.

Devart‘SQL komplette Express Edition ist ein SSMS Addon und ist ein freies und nützliches Add-on. Es liefert dringend benötigte Code-Formatierung und Intellisense-Funktionen.

Ich benutze SSMSToolsPack Addon auch, und es ist sehr gut. Ich liebe;

  1. Es ist SQL-Schnipsel, wo Sie kurze Schlüssel für die Code-Schnipsel erstellen und es fügt sie automatisch, wenn Sie diese Tasten eingeben und drücken Sie die Eingabetaste.
  2. Geschichte Suchen Sie in Ihren Abfragen abzurufen, die Sie Monate her lief und vergessen, eine Menge meiner Zeit gespeichert.
  3. letzte Sitzung wiederherstellen. Jetzt spare ich nie meine Fragen, wenn ich nur noch mein Windows neu starten. Ich klicke auf gerade letzte Sitzung wiederherstellen und meine letzte Sitzung wird und wieder hergestellt und die Verbindung automatisch erstellt.
  4. Erstellen Sie Insert-Anweisungen von Abfrageergebnissen (sehr nützlich). Nur die Liebe dieses Addon.

Ein kleiner Haken vor kurzem eingeführt. SSMSToolsPack ist nicht mehr frei für SSMS 2012. Es ist noch frei für SSMS 2005 und SSMS 2008 bis noch . Verwenden Sie es nur, wenn Sie es kaufen möchten, wenn Sie SSMS migrieren 2012. Ansonsten kann es eine gute Idee davon entwöhnen weg.

I Red Gate warm SQL Prompt empfehlen. Auto-Discovery (Intellisense auf Tabellen, Stored Procedures, Funktionen und native Funktionen) ist nichts weniger als genial! :)

Es kommt mit allerdings ihren Preis. Es gibt keine frei-ware-Version der Sache.

Die Kenntnis der beiden (?) Verschiedene Arten von Fenstern in SQL Server Management Studio.

Wenn Sie eine Tabelle der rechten Maustaste und wählen Sie Open es wird eine editierbare Gitter verwenden, die Sie die Zellen in ändern können. Wenn Sie die Datenbank der rechten Maustaste und wählen Sie New Query es eine etwas andere Art von Fenster erstellen, die Sie können‘ t ändert das Gitter in aber es gibt Ihnen ein paar anderen netten Features, wie zum Beispiel verschiedenen Code-Schnipsel erlauben und Sie sie durch Auswahl separat zu lassen auszuführen.

eine SELECT INTO Abfrage verwenden, um schnell / leicht Backup-Tabellen machen, zu arbeiten und experimentieren mit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top