SQL Server Management Studio 2012: Wie werden Ordner im SSMS-Projekt gespeichert?

17

Ich verwende SSMS 2012, um mit den von uns verwendeten SQL Server 2012- und Azure SQL-Servern zu kommunizieren. Ich gebe zu, dass ich kein SQL-Experte bin, daher habe ich die meisten meiner SQL-Skripte für zukünftige Referenzzwecke gespeichert. Ich habe schnell 20 oder so .SQL-Skripte im SSMS-Projekt gefunden und sie befinden sich alle im selben 'Queries'-Ordner.

Gibt es eine Möglichkeit, im Projekt "Unterordner" zu erstellen, damit ich meine Skripte richtig organisieren kann? Wie halten die meisten anderen Leute ihre Skripte organisiert? Ich bin mir ziemlich sicher, dass ein Anfänger wie ich ein echtes Problem für einen echten Administrator haben muss (mit möglicherweise Hunderten von Skripten?).

DeepSpace101
quelle
2
Ich habe einen Freund, der alle seine Skripte in einer riesigen .sqlDatei aufbewahrt. Auf diese Weise müssen Sie immer nur eine Datei im Auge behalten.
Max Vernon
Ich kenne Leute, die sie nur in einem Ordner behalten, der mit ihrem DropBox-Konto synchronisiert ist. Dann diejenigen, die es auch auf ihrem SkyDrive speichern. Ich bin nicht wirklich einer, der die Projekte in SSMS verwendet.
Shawn Melton
Hier könnte der Skript-Manager nützlich sein, wenn Sie sich daran gewöhnen. Obwohl es mir gefallen hat, hat es für mich irgendwie nicht geklickt. Ich ziehe es einfach vor, meine Skripte lokal in einigen Ordnern zu speichern, die ich auf DropBox gesichert habe. Ich mochte noch nie SSMS-Projekte.
Marian
Sie können SQLTreeo verwenden. Hier ist das Tool: sqltreeo.com

Antworten:

7

Schließlich wurden Unterordner in SSMS 2016 ermöglicht.

Vorsichtige Benutzer: Sie können SSMS 2016 installieren und das alte weiterhin verwenden. Siehe Hinweis [1]unten.

Sobald Sie dort sind, können Sie Lösungen anstelle von Projekten verwenden .


Unterordner funktionieren so:

Hinzufügen des Lösungsunterordners:

  1. Klicken Sie mit der rechten Maustaste auf das Lösungselement (Baumstamm) und wählen Sie im Menü Hinzufügen > Neuer Lösungsordner .
  2. Schritt 1 funktioniert jetzt auch für jeden Ordner, den Sie hinzugefügt haben.

Hinzufügen eines SQL-Skripts:

  • Klicken Sie mit der rechten Maustaste auf einen Ordner, und fügen Sie im Menü Hinzufügen entweder eine vorhandene SQL-Datei oder eine neue SQL-Datei hinzu (suchen Sie in der Liste den Elementtyp mit der SQL-Erweiterung).

Ihre guten alten Projekte (schlechte alte Projekte)

  • Sie können Projekte in Ihrer Lösung weiterhin hosten, wenn Sie dies aus älteren Gründen, zum Hosten von Verbindungen usw. für nützlich halten. Fügen Sie einfach neue Projekte hinzu oder importieren Sie vorhandene Projekte in die Lösung.

[1] In Bezug auf die Aktualisierung:

  1. SQL Server 2008 - 2016 werden offiziell von SSMS 2016 unterstützt . Weitere Informationen finden Sie auf der Downloadseite. Bei älteren Versionen können Sie Ihr altes Lieblings-SSMS beibehalten (siehe Punkt 2 unten).

    • Die einzige Einstellung, die möglicherweise Ihre Aufmerksamkeit erfordert, ist Optionen > SQL Server-Objekt-Explorer > Skript für Serverversion > (Serverversion festlegen).
  2. Verschiedene SSMS-Versionen leben gut zusammen , dh Sie können SSMS 2008 und SSMS 2016 problemlos zusammen installieren - getestet.

Miroxlav
quelle
Das ist praktisch. Es ist erwähnenswert, dass SSMS all diese Dateien in einer einfachen Dateistruktur in einem einzigen Verzeichnis speichert, sodass Sie keine Datei mit demselben Namen in zwei verschiedenen Ordnern haben können.
Jon
@ Jon - Das ist nicht ganz richtig. Es mag auf den ersten Blick verwirrend aussehen, aber die im Projektbaum angezeigte Datei- und Ordnerstruktur ist unabhängig von der Position der Dateien auf der Festplatte. Auf der Festplatte muss es nicht flach sein (versuchen Sie einfach, neue Dateien an einer anderen Stelle zu speichern ...). Sie können sie in Verzeichnissen verteilen, wie Sie möchten. Mit anderen Worten: Bewahren Sie Dateien in beliebigen Verzeichnissen im Dateisystem auf, und fügen Sie sie anschließend in beliebige virtuelle Ordner im SSMS-Projektbaum ein. (Wenn ich mich richtig erinnere, ist sogar das Duplizieren von Referenzen möglich.) Nachteil: Sie müssen Dateien zweimal organisieren - in Verzeichnissen und in Projektordnern.
Miroxlav
6

Wenn Sie in SSMS das Snap-In Vorlagenbrowser noch nicht anzeigen, wechseln Sie zu Menü, Ansicht, Vorlagenexplorer (Tastenkürzel Ctrl- Alt- T).

Die Vorlagen werden von Ihrem lokalen Computer aus diesem Ordner geladen

C: \ Programme (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql

Sie können nach Belieben Unterordner hinzufügen und diese sogar verschachteln (über Windows Explorer oder SSMS). Wenn ich mich nicht irre, werden die Ordner nur einmal pro SSMS-Start geladen, sodass Sie möglicherweise SSMS neu starten müssen, um Ordneränderungen aus dem Dateisystem zu übernehmen.

p / s - Mit dieser Methode wird der Vorlagenbrowser für die Organisation von Projektskripten erneut verwendet!

孔夫子
quelle
Weit entfernt von einer Antwort, aber dies ist der am wenigsten kludgy Hack, der bisher vorgeschlagen wurde! Vielen Dank fürs Teilen, ich werde dies noch ein paar Tage offen halten ...
DeepSpace101
4

Leider unterstützen SSMS-Projekte keine Unterordner. Wenn Sie über den Standardordner sprechen, in dem SQL Daten speichert, können Sie dort Unterordner erstellen. Das ist nur ein Ordner auf Ihrer Festplatte. Dieser Ordner befindet sich standardmäßig unter "C: \ Users {Benutzername} \ Documents \ SQL Server Management Studio \ Projects".

mrdenny
quelle
2

Das Fehlen von Unterordnern ist sicherlich frustrierend. Ich werde versuchen, meine Sachen in separaten Projekten in derselben Lösung zu organisieren. Jeder hat einen Abfragenordner ... Ich werde die Projekte so benennen, wie ich die Unterordner benennen würde (wenn ich sie erstellen könnte!).

Aron
quelle
1

Zur obigen Antwort 3 hinzufügen, die Situation umgehen, indem Sie die Vorlagen unter C: \ Programme (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql neu ausrichten.

Sie müssen den Benutzerkonten des Computers Berechtigungen für Vollzugriff hinzufügen. (Klicken Sie mit der rechten Maustaste auf den Zielordner, Eigenschaften, wählen Sie die Computerbenutzer, Bearbeiten usw. aus.)

Sogar dann ist es, als hätte Steve Balmer diese Lösung am Pass angeführt. Sie können eine Datei dort speichern, aber wenn sie in SSMS geöffnet wird, wird sie nicht unter dem Namen dieser .sql-Datei geöffnet, sondern unter einem generischen Namen. Es gibt also all diese Funktionen, um Ihre Abfragen, Funktionen, Tabellenskripten, Sprocs usw. übersichtlich zu halten.

Tolle Antwort, aber unter Windows 8.1 wurde es ausgeschlossen.

Die beste Antwort, die ich habe, ist das Speichern über SSMS in das Dateisystem, das meiner Meinung nach die Verschachtelung von .sql-Dateien respektiert. Ich muss in Visual Studio 2013 ein Datenbankprojekt erstellen, in dem ich Ordner einrichten kann, die für meinen Produktfluss sinnvoll sind.

Ich kann diese Abfragen jedoch nicht über den Server-Explorer in Visual Studio öffnen. Es ist dann jedoch möglich, Abfragen an einem Ort zu organisieren, wenn sie in Arbeit sind, SPROC-Skripte, UDF-Skripte usw.

Es gibt keine IDE für diese Art von Projektarbeit und yep, wie ein anderer Befragter hier sagt, ist das traurig.

Hier ein bisschen herumtollen und toben ... mit anderen Worten, ich kann die gewünschte Ordnerstruktur mit einem DB-Projekt in VS 2013 erhalten, aber wenn ich mich auf einem Remote-Server anmelden möchte, um sie zu testen, muss ich Datei für Datei auf sie zugreifen SSMS. Schmerzen auf der Rückseite ... Ich möchte eine IDE , die dies tut.

user1585204
quelle
0

Ich habe Fortschritte gemacht, indem ich die SSMS-Projektdatei manuell bearbeitet habe, um Ordner unter der Lösung hinzuzufügen. Öffnen Sie die Datei .ssmssqlproj in einem Texteditor. Suchen Sie nach den Knoten mit dem Namen LogicalFolder. Der Knoten Verschiedenes ist ein gutes Modell für das, was Sie tun müssen.

Kopieren Sie einfach diese Zeilen und ändern Sie den Namen in den Ordner, den Sie sehen möchten. Ändern Sie auch den Wert für Typ in einen eindeutigen Wert. Hier ist was ich getan habe.

<LogicalFolder Name="Tables" Type="4" Sorted="true">
  <Items />
</LogicalFolder>
<LogicalFolder Name="Functions" Type="6" Sorted="true">
  <Items />
</LogicalFolder>
<LogicalFolder Name="User-defined Table Types" Type="7" Sorted="true">
  <Items />
</LogicalFolder>

Stellen Sie sicher, dass Sie eine Kopie der Projektdatei (.ssmssqlproj) aufbewahren. Wenn Sie die Bearbeitung durcheinander bringen, wie ich es einige Male getan habe, wird das Projekt nicht geöffnet. Dies ist nicht so schlimm, wenn Sie das TFS-Add-In installiert haben und Ihre Projektdateien einchecken. Sie können die Änderungen einfach verwerfen. Wenn nicht, stellen Sie sicher, dass Sie eine Kopie erstellen.

Dann erstelle ich Ordner unter der Lösung, die den logischen Ordnernamen entsprechen. Danach erstellte ich ein Tabellendefinitionsskript und ein benutzerdefiniertes Tabellentypdefinitionsskript und speicherte sie in ihren jeweiligen Ordnern. Sie wurden im Projektmappen-Explorer im Ordner "Verschiedenes" angezeigt, und ich habe sie in die entsprechenden Ordner gezogen.

Dies ist, wo die Dinge zusammengebrochen. Ich glaube, alle gespeicherten Prozeduren, Funktionen, Tabellen und Typen befinden sich in Dateien mit der Erweiterung .sql. Da es sich um SQL-Dateien handelt, wurden sie im Projektmappen-Explorer im Ordner Abfragen abgelegt. Sie befinden sich jedoch weiterhin physisch in den richtigen Ordnern auf der Festplatte. Das ist also ein Schritt in die richtige Richtung.

Ich möchte sehen, ob das Attribut "Typ" in der Projektdatei einer bestimmten Dateierweiterung entspricht und ob ich herausfinden kann, um welche es sich handelt. Wenn ich die richtigen Erweiterungen bekomme, legt SSMS die Dateien im richtigen Projektordner ab.

Ich kann mir Visual Studio ansehen, um zu sehen, wie dies funktioniert, da SSMS gemäß dem Begrüßungsbildschirm auf Visual Studio basiert.

Ich bin jedoch auf halbem Weg da, vielleicht kann einer von euch den Rest herausfinden!

RonSanderson
quelle
Das hat bei mir nicht funktioniert. Es kann nicht geöffnet werden.
Soham Dasgupta