So bearbeiten Sie Daten im Ergebnisraster in SQL Server Management Studio

94

Ich möchte einige Zeilenwerte bearbeiten, sobald ich eine Abfrageausgabe im Ergebnisraster erhalte. Es ist wahr, dass wir mit der rechten Maustaste auf die Tabelle klicken und "Tabelle öffnen" sagen können, um eine bearbeitbare Tabellenausgabe zu erhalten. Ich möchte jedoch eine bearbeitbare Abfrageausgabe, nur bestimmte Zeilen, die meinen Kriterien entsprechen, und sie im Ergebnisraster bearbeiten.

Kann dies in Microsoft SQL Server Management Studio Express möglich sein?

bi2mon
quelle
1
Mit stackoverflow.com/questions/1535469/… als Duplikat markieren ? Es hat auch eine voll funktionsfähige Lösung
Brad
3
@Brad - Die Antwort auf die mit verknüpfte Frage funktioniert nur, wenn Sie eine einzelne Tabelle verwenden, dh keine Verknüpfungen. Sobald Sie anfangen, 2 oder 3 Tabellen zu verbinden, können Sie dies nicht mehr tun. Es wäre interessant, wenn es andere Lösungen gäbe.
Francis Rodgers
2
Lesen Sie unten die Antwort von @Yves A Martin, um eine Alternative zum Bearbeiten von verknüpften Tabellen zu finden.
Jaredbaszler

Antworten:

86

Sie können etwas Ähnliches tun, was Sie wollen. Klicken Sie mit der rechten Maustaste auf eine Tabelle und wählen Sie "Top 200 Zeilen bearbeiten" (wenn Sie sich in SQL Server 2008 befinden) oder "Tabelle öffnen" in SQL Server 2005. Sobald Sie dort angekommen sind, befindet sich oben eine Schaltfläche mit der Aufschrift "SQL". Wenn Sie darauf klicken, können Sie eine SQL-Anweisung schreiben und die Ergebnisse bearbeiten, wenn Sie auf eine Zelle klicken, die Sie ändern möchten.

Lamak
quelle
1
Dies ist 2019, die neueste Version ist SSMS 2017, dennoch sollte der gleiche Ansatz zum Bearbeiten von Rasterzellen verwendet werden! so ein schlechtes UI-Design!
Serpooshan
78

Ja, das ist möglich. Klicken Sie mit der rechten Maustaste auf die Tabelle und klicken Sie auf, Edit Top 200 Rowswie im Bild unten gezeigt

Geben Sie hier die Bildbeschreibung ein

Klicken Sie dann auf eine beliebige Stelle im Ergebnisraster, um das SQLSymbol "SQL-Bereich anzeigen" zu aktivieren . Dadurch wird der SQL-Editor für die Tabelle geöffnet, die Sie bearbeiten möchten. Hier können Sie Ihre eigene SQL-Abfrage schreiben und anschließend die Ergebnismenge der Abfrage direkt bearbeiten.

Geben Sie hier die Bildbeschreibung ein

Lernen
quelle
25

Sie können dies folgendermaßen tun:

  • Verwandeln Sie Ihre ausgewählte Abfrage in eine Ansicht
  • Klicken Sie mit der rechten Maustaste auf die Ansicht und wählen Edit All Rows Sie (Sie erhalten ein Raster mit Werten, die Sie bearbeiten können - auch wenn die Werte aus verschiedenen Tabellen stammen).

Sie können Ihrer Ansicht auch Einfüge- / Aktualisierungsauslöser hinzufügen, mit denen Sie die Werte aus Ihren Ansichtsfeldern abrufen und anschließend mithilfe von T-SQL Aktualisierungen für mehrere Tabellen verwalten können.

Yves A Martin
quelle
1
+1 - Dies ist der beste und einfachste Weg, um verknüpfte Tabellen zu bearbeiten. Dies ist zwar zu viel Arbeit, um diese Aufgabe zu erfüllen, aber es ist der einzige Weg, den ich finden kann, um dies zu tun.
Jaredbaszler
Sie können JOINED-Tabellen nicht bearbeiten. Nur nicht JOIN SQL-Anweisungen. Alle meine Zellen können nicht bearbeitet werden, wenn ich einen JOIN habe.
Charles Robertson
20

SSMS - Rechtsklick Ergebnisse von Edit 200 | Option | Fenster | SQL - Bearbeiten Sie die Anweisung.

Ta01
quelle
SSMS 2014, überspringen Sie den Schritt "Option".
Denise Skidmore
17

Nein. Sie können das Ergebnisraster auf keinen Fall bearbeiten. Das Ergebnisraster dient hauptsächlich zur Anzeige der von Ihnen ausgeführten Abfrage.

Dies aus dem Grund, dass jeder komplexe Abfragen ausführen kann. Hoffentlich werden sie für die nächste Version diese Art von Funktionalität enthalten.

Ich hoffe das beantwortet deine Frage.

mr.b.
quelle
6
Ich verstehe nicht, warum die Leute Ihre Antwort abgelehnt haben. Es ist eigentlich richtig. Sobald Sie einen Join in Ihrer Abfrage verwendet haben, können Sie die Ergebnisse nicht mehr mit den in den bisherigen Antworten vorgeschlagenen Methoden bearbeiten. +1 von mir.
Francis Rodgers
Sie können die Abfrage in einen SQL-Bereich für das Bearbeitungsraster kopieren, auf den die anderen Antworten verweisen.
Denise Skidmore
17

Die angegebenen Antworten sind weiterhin gültig. Diesbezüglich wurde keine Änderung in SSMS (SQL Server 2016) vorgenommen.

Sie können auch den Kriterienbereich verwenden, nachdem Sie "Top 200 Zeilen bearbeiten" ausgeführt haben.

Bearbeiten Sie das Top 200-Kontextmenü

  1. Kriterienbereich anzeigen
  2. Geben Sie ein Kriterium ein
  3. Bearbeiten Sie Daten direkt im Ergebnisraster

Öffnen Sie den Kriterienbereich

Darüber hinaus kann die Anzahl der Zeilen für diese Befehle in Ihren SSMS-Optionen angepasst werden.

Geben Sie hier die Bildbeschreibung ein

Ricardo C.
quelle
10

UPDATE
wie Sie richtige Lösung in sehen Learning Antwort, in dem SQL Server Management 2014 können Sie
1.click auf " Bearbeiten Top 200 Zeilen "
und dann
2.Klicken Sie auf " anzeigen SQL - Bereich (ctrl + 3) "
und
3. Entfernen TOP ( 200) aus Auswahlabfrage


Siehe Shen Lance Antwort, es gibt keine Möglichkeit, das Ergebnis der ausgewählten Abfrage zu bearbeiten . und die anderen Antworten gelten nur für die normale Auswahl und nur für 200 Datensätze.

Hamid
quelle
5

Ja, Sie können verknüpfte Ergebnisse bearbeiten. (zumindest in SSMS 2008 R2) Nachdem Sie einen der Ergebniswerte in der Ansicht bearbeitet haben, in der Verknüpfungen verwendet werden, müssen Sie die Abfrage erneut ausführen, um die Ergebnisse zu aktualisieren.

Sie müssen auch sicherstellen, dass SSMS so konfiguriert ist, dass "Alle Zeilen bearbeiten" ... dies in SSMS - Tools | ermöglicht Optionen | SQL Server Object Explorer | Befehle ... erweitern Sie die Tabellen- und Ansichtsoptionen ... geben Sie den Wert 0 in "Wert für Befehl" Oben und Zeilen bearbeiten "ein ... können dies auch für die Auswahl tun.

Yves A Martins Antwort ist 100% richtig!

rauben

Rob Ainscough
quelle
5

Wählen Sie einfach "Top 200 Zeilen bearbeiten", drücken Sie Strg + 3 im Bearbeitungsrasterbereich (oder klicken Sie auf "SQL-Bereich anzeigen") und bearbeiten Sie die Abfrage ...

Beachten Sie jedoch, dass dies nur für die Abfrage funktioniert, die kein "Join" enthält.

Tom
quelle
4

Klicken Sie zunächst mit der rechten Maustaste auf die Geschichte, wählen Sie "Alle Zeilen bearbeiten" und anschließend "Abfrage-Designer -> Bereich -> SQL". Anschließend können Sie die Abfrageausgabe im Raster bearbeiten.

Jack.one
quelle
3

Wenn Sie häufig zelleninterne Änderungen an SQL-Datenbanken vornehmen müssen , wird HeidiSQL verwendet ein Vergnügen, könnte nicht einfacher zu verwenden sein und ist kostenlos / Open Source (Spenden werden akzeptiert).

Ursprünglich für MySQL geschrieben, kann es jetzt mit SQL Server umgehen und bietet (ab August 2014) auch experimentelle PostgreSQL-Unterstützung.

Sean O.
quelle
3

Klicken Sie mit der rechten Maustaste auf eine Tabelle in Ihrem interessierenden dB oder auf eine Datenbank auf dem Server, indem Sie master verwenden, wenn Verknüpfungen vorhanden sind oder mehrere dBs verwendet werden. Wählen Sie "Top 200 Zeilen bearbeiten". Wählen Sie die Schaltfläche "SQL" in der Taskleiste. Kopieren Sie Ihren Code, fügen Sie ihn über den vorhandenen Code ein und führen Sie ihn erneut aus. Jetzt können Sie die Ergebnismenge Ihrer Abfrage bearbeiten. Sherry ;-)

Sherry R Proben
quelle
Das half einem Lit.
Asad Ali
2

Wenn die Abfrage als Ansicht geschrieben ist, können Sie die Ansicht bearbeiten und Werte aktualisieren. Das Aktualisieren von Werten ist nicht für alle Ansichten möglich. Es ist nur für bestimmte Ansichten möglich. Weitere Informationen finden Sie unter Ändern von Daten über View MSDN Link . Sie können eine Ansicht für die Abfrage erstellen und die 200 Zeilen wie folgt bearbeiten:

Geben Sie hier die Bildbeschreibung ein

Venkataraman R.
quelle
Warum gibt es hier eine negative Abstimmung? Die Frage ist nicht spezifisch für eine Tabellenbearbeitung. Die Frage ist, wie wir das Ergebnismengenraster für die Abfrageausgabe bearbeiten können, die er erhält. Ich schlug vor, wenn möglich, eine Ansicht für die Abfrage zu erstellen und die Zeilen zu bearbeiten.
Venkataraman R
0
  1. Um es klar auszudrücken: Die Option "Wert für den Befehl" Obere Zeilen bearbeiten "" hat nichts damit zu tun, ob eine Ergebnismenge bearbeitet werden kann oder nicht. Dies ist nur eine Möglichkeit, die Ergebnismenge einzuschränken.

  2. Das Bearbeiten der Ergebnismenge einer Abfrage basierend auf einer und nur einer Tabelle ist offensichtlich immer möglich.

  3. Die Ergebnismenge einer Abfrage, die auf mehr als einer Tabelle basiert, ist unter folgenden Bedingungen möglich: Sie können die Felder in der Ergebnismenge sofort bearbeiten, wenn sie zu einer und nur einer basierten Tabelle in der Abfrage gehören! Wenn die Felder Primärschlüssel sind, müssen Sie nach jeder Zeilenaktualisierung die Aktualisierung / "SQL ausführen" (Strg + R) ausführen, um beim nächsten Mal eine Zeile bearbeiten zu können. Wenn die Felder kein Primärschlüssel sind, müssen Sie die Aktualisierung / "SQL ausführen" (Strg + R) nicht ausführen.

Ich habe es auf SQL Server 2008 - 2016 getestet!

Asg
quelle