MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 31.01.2018, 21:22   #1
Progi
Neuer Benutzer
Neuer Benutzer
Frage Admin : MSSQL - Update zusammenfassen

Guten Abend

Ich hoffe das mir hier jemand helfen kann?

Ich habe ein zwei Update Statement die ich gerne in einem Befehl ausführen möchte:

UPDATE Name SET Vorname= 'Peter 1' where ID = 1
UPDATE Name SET Vorname= 'Paul 1' where ID = 2

Kann ich nun ein Update daraus machen auch wenn die Bedingung unterschiedlich sind?

Vielen dank für die Zeitnahe Hilfe.
Progi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 31.01.2018, 21:44   #2
ebs17
MOF Guru
MOF Guru
Standard

SQL als native Datenbanksprache kann hervorragend mit Tabellen umgehen:
Code:

UPDATE Name AS N INNER JOIN Wertetabelle AS W
ON N.ID = W.ID
SET N.Vorname = W.Vorname

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 31.01.2018, 22:15   #3
Progi
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Vielen Dank, bin aber ein bisschen überfordert.
Kannst du mir dies mit meinem Beispiel oben einmal aufschreiben?

Sehe schon, dass du die Tabelle und Spalte genommen hast, aber verstehe die Wertetabelle nicht. Wo sind den nun die Name Paul 1 und Peter 1 hingekommen?

Danke für das Feedback
Progi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 31.01.2018, 23:01   #4
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

Wo sind den nun die Name Paul 1 und Peter 1 hingekommen?

Gegenfrage: Wo kommen die denn her?

Ich gehe davon aus, dass Informationen in Tabellen stehen, in einer Datenbank ist das nicht ungewöhnlich. Dann nimmt man einfach eine Tabelle, in der man die benötigten Vornamen sowie ID's zur richtigen Zuordnung finden kann, hinzu.

Der Abfrage ist es dann relativ egal, ob Du zwei Vornamen oder vielleicht 20.000 Vornamen zu aktualisieren hast.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 01.02.2018, 18:45   #5
hcscherzer
MOF Guru
MOF Guru
Standard

Code:

UPDATE Name SET Vorname = CASE WHEN ID = 1 THEN 'Peter 1' ELSE 'Paul 1' END

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 01.02.2018, 20:42   #6
stendate
MOF User
MOF User
Standard

@hcscherzer: Deine Lösung ist - mit Verlaub - suboptimal, weil durch den Else-Zweig auch alle anderen Namen mit einer ID ungleich 1 überschrieben werden:

Code:

DECLARE @Name TABLE (
	[ID] INT,
	[Vorname] VARCHAR(265)
)

INSERT INTO @Name ([ID],[Vorname]) VALUES (1,'Peter 1');
INSERT INTO @Name ([ID],[Vorname]) VALUES (2,'Paul 1');
INSERT INTO @Name ([ID],[Vorname]) VALUES (3,'Marry 3');

SELECT [ID], [Vorname] FROM @Name;

UPDATE @Name SET Vorname = CASE WHEN ID = 1 THEN 'Peter 1' ELSE 'Paul 1' END

SELECT [ID], [Vorname] FROM @Name;
So wäre es besser:

Code:

UPDATE @Name SET Vorname = CASE 
 WHEN ID = 1 THEN 'Peter 2'
 WHEN ID = 2 THEN 'Paul 2' 
 WHEN ID = 3 THEN 'Marry 4'
END

Geändert von stendate (01.02.2018 um 20:53 Uhr).
stendate ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 01.02.2018, 21:58   #7
hcscherzer
MOF Guru
MOF Guru
Standard

Zitat: von stendate

Deine Lösung ist - mit Verlaub - suboptimal

Dessen war ich mir sehr wohl bewusst.
In der Frage des TS ging es aber "nur" darum, die zwei Anweisungen in eine zu packen. Und dafür reichte es ja wohl.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.