Verfasser: Marcus
Die Änderung von Shop-Daten ist ein wesentlicher Bestandteil des Betriebs eines E-Commerce-Unternehmens. Ob es darum geht, die Reihenfolge von Optionen zu ändern oder neue Produkte hinzuzufügen, die Fähigkeit, Datenbankwerte anzupassen, ist von entscheidender Bedeutung. In diesem Leitfaden werden wir uns auf den Einsatz von SQL Server Management Studio (SSMS) konzentrieren, um Shop-Datenbankwerte effizient und präzise zu bearbeiten.
Was ist SQL Server Management Studio (SSMS)?
SQL Server Management Studio (SSMS) ist eine integrierte Entwicklungsumgebung (IDE), die speziell für die Verwaltung von SQL Server-Datenbanken entwickelt wurde. Mit SSMS können Sie SQL-Abfragen ausführen, Datenbankobjekte entwerfen, Tabellen bearbeiten und vieles mehr. Es ist ein leistungsstarkes Tool, das von Entwicklern und Datenbankadministratoren gleichermaßen genutzt wird, um die Datenbankverwaltung zu vereinfachen.
Der generelle Weg, um Shop-Daten zu ändern führt entweder übers Backend oder über einen Datenimport. In manchen Fällen können Daten auch direkt per SQL (Structured Query Language) eingefügt, verändert oder gelöscht werden. Solche SQL-Anweisungen lassen sich auch ohne zusätzliche Software direkt übers Shop-Backend absetzen (siehe System > Wartung).
Generell empfiehlt es sich hier vorher ein Datenbank-Backup anzulegen, um bei Unfällen den alten Datenstand wiederherstellen zu können.
Das direkte Editieren von Datenbankwerten mittels SQL Server Management Studio (SSMS), ist jedoch ein Alternative. Anhand eines Beispiels wird dieser Weg im folgenden veranschaulicht.
Die Aufgabe: die Reihenfolge aller Optionen des Spezifikationsattributes "Farbe" zu ändern.
Die Menübefehle von SSMS sind in diesem Beispiel in Englisch, weil ich die Englische Version von SSMS installiert habe.
Zunächst benötige ich die ID des Spezifikationsattributes Farbe. Die ID ist der von der Datenbank automatisch erzeugte, unveränderbare Primärschlüssel eines Datensatzes. Den Wert erhalte ich entweder über die Datentabelle SpecificationAttribute oder über das Shop-Backend unter Katalog > Spezifikationsattribute > Farbe. In diesem Fall lautet die ID 2.
Als nächstens suche ich im Objekt-Explorer von SSMS unterhalb unserer Datenbank nach der Tabelle SpecificationAttributeOption.
Sie enthält die Optionen aller Spezifikationsattribute. Über einen Rechtsklick auf den Tabellennamen wähle ich den Befehl Edit Top
200 Rows. Die Anzahl der Zeilen, die über diesen Befehl geladen werden lässt sich übrigens per Option unter Tools >
Options > SQL Server Object Explorer > Commands > Value for Edit Top n Rows
command ändern. Bei 0 werden alle Zeilen bzw. Optionen geladen.
In dem Datenfenster, das sich geöffnet hat, können nun Optionen bereits geändert werden. Allerdings möchte ich nicht die ersten 200 Optionen, sondern die des Spezifikationsattributes Farbe ändern. Dazu mache ich einen Rechtsklick ins Datenfenster und wähle Pane > SQL. Daraufhin wird mir im oberen Fensterteil die SQL-Anweisung zum Laden der Optionen angezeigt, und diese Anweisung kann ich beliebig ändern. Dazu sind einige Grundlagen in SQL notwendig, aber keine Sorge, das ist nicht sonderlich kompliziert. Die Anweisung sieht im Moment wie folgt aus:
SELECT TOP (200) Id, SpecificationAttributeId, Name, DisplayOrder, Alias, NumberValue, MediaFileId, Color FROM SpecificationAttributeOption
Schritt 1:
Als erstes entferne ich TOP (200), weil ich nicht die ersten 200 Zeilen editieren möchte.
SELECT Id, SpecificationAttributeId, Name, DisplayOrder, Alias, NumberValue, MediaFileId, Color FROM SpecificationAttributeOption
Schritt 2:
Hinter SELECT sind kommagetrennt sämtliche Feldnamen der Tabelle SpecificationAttributeOption aufgeführt. Diese können sich im Rahmen von Updates von Smartstore 5 durchaus ändern. Mich interessieren hier eigentlich nur Name (der Optionswert), DisplayOrder (die Reihenfolge) und zur Kontrolle noch das Feld SpecificationAttributeId, welches die ID des zugehörigen Spezifikationsattributes enthält. Also entferne ich alle anderen Feldnamen aus der Anweisung.
SELECT SpecificationAttributeId, Name, DisplayOrder FROM SpecificationAttributeOption
Schritt 3:
Hinter FROM steht der Name der Tabelle, deren Daten geladen werden sollen. Das bleibt natürlich so stehen. Nun möchte ich aber nicht alle Optionen laden (ich hatten ja zuvor das Top 200 entfernt), sondern nur die des Spezifikationsattributes Farbe. Dazu füge ich unter Verwendung der Spezifikationsattribut-ID für Farbe (in diesem Fall wie erwähnt die 2) eine sogenannte Where-Bedingung an, um eben nur Farboptionen zu laden.
SELECT SpecificationAttributeId, Name, DisplayOrder FROM SpecificationAttributeOption WHERE SpecificationAttributeId = 2
Schritt 4:
Und zu guter Letzt möchte ich die Optionen noch nach ihrem Wert alphabetisch aufsteigend sortiert angezeigt bekommen. Dazu hänge ich eine entsprechende Order-By-Anweisung mit dem gewünschten Feldnamen an.
SELECT SpecificationAttributeId, Name, DisplayOrder FROM SpecificationAttributeOption WHERE SpecificationAttributeId = 2 ORDER BY Name
Für eine absteigende Sortierung würde die Anweisung ORDER BY Name DESC lauten. Um die überarbeitete SQL-Anweisung auszuführen mache ich
einen Rechtsklick in das Anweisungs- oder das Datenfenster und wähle Execute SQL.

Um die Optionen auch im Shop alphabetisch sortiert zu halten, muss ich nun einfach in der Spalte DisplayOrder hochzählende Werte eintragen. Es empfiehlt sich Lücken zwischen den Werten zu lassen, um bei neuen Farben leichter die Sortierung aufrecht erhalten zu können.

Wir empfehlen regelmäßig Backups der Datenbank durchzuführen, um Datenverluste zu vermeiden. Dies ist auch über das Shop-Backend
möglich. Dokumentieren Sie Ihre Änderungen, um sie später nachvollziehen zu können. Mit SSMS haben Sie die Kontrolle über Ihre
Shop-Datenbank und Sie können Daten optimal verwalten.
Haben Sie weitere Fragen zu SQL Management Studio? Rufen Sie uns an oder senden Sie uns eine E-Mail.
Unser Smartstore-Team steht Ihnen gerne persönlich zur Verfügung!
https://smartstore.com/de/persoenliche-beratung/
Kommentare (1)
Sehr nützlich und äußerst zeitsparend. Danke für diesen Beitrag, ist wichtig für viele Shopbetreiber. --Stefan