AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle updaten

Ein Thema von Sugar · begonnen am 29. Sep 2015 · letzter Beitrag vom 29. Sep 2015
Antwort Antwort
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#1

Tabelle updaten

  Alt 29. Sep 2015, 18:10
Datenbank: MS SQL • Version: 2014 • Zugriff über: ADO
Hallo Forum,

ich kämpfe zum ersten mal etwas intensiver mit T-SQL weil ich ein Tool umstellen muss.

In dem Programm wird ein Vorlaufkalender angelgt um später Termininformationen zu hinterlegen. Die Tabelle hat im Wesentlichen eine ID die den Datensatz identifiziert (und Kalenderwoche wie Person darstellt) und halt die Wochentage Mo-So. Es sind also alle in Frage komemnden Datensätze - für jeden Mitarbeiter jede einzelne Kalenderwoche - bereits in der Tabelle vorhanden. Nur eben lediglich mit Kalenderwoche und Mitarbeiternamen.

Nun können Termine hin und her kopiert werden. Dazu wird im Moment noch - klassisch Delphi - ein Array mit den Termindaten des selktierten Datensatzes gefüllt und später in einen wiederum selektierten DS kopiert. Also ganz ähnlich wie man das auch im Excel machen würde.

Ich möchte nun den Transport der Daten folgendermaßen darstellen:

Das "Cut-Ereignis" liest lediglich die ID des ausgewählten Datensatzes. Klickt der Benutzer dann den Ziel-Datensatz an und "fügt ein" möchte ich den dann aktuellen Datensatz "updaten mit dem Inhalt des DS der ursprungs-ID. (ich hoffe ich bin verständlich)

Im Moment probiere ich mit T-SQL folgendes:
Delphi-Quellcode:
update Einsatzplan
set Montag = (Select Montag from Einsatzplan where id=17),
 Dienstag = (Select Dienstag from Einsatzplan where id=17),
 Mitwoch = (Select Mitwoch from Einsatzplan where id=17),
 Donnerstag = (Select Donnerstag from Einsatzplan where id=17),
 Freitag = (Select Freitag from Einsatzplan where id=17),
 Samstag = (Select Samstag from Einsatzplan where id=17),
 Sonntag = (Select Sonntag from Einsatzplan where id=17)
where id=1
Aber rein vom Ansehen her erscheint mir das irgendwie nicht richtig. Gibt es nicht ein "Update" ähnlich wie es mit INSERT INTO Syntax zu handeln ist?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Tabelle updaten

  Alt 29. Sep 2015, 18:15
Ja mit MERGE
Markus Kinzler
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#3

AW: Tabelle updaten

  Alt 29. Sep 2015, 18:54
OK! Hast du auch ein Beispiel das - auch für mich - verständlich ist? ;(
  Mit Zitat antworten Zitat
Sugar

Registriert seit: 23. Jul 2012
83 Beiträge
 
#4

AW: Tabelle updaten

  Alt 29. Sep 2015, 19:10
OK, DAnke für den Tipp

Hab es hin bekommen:

merge into Einsatzplan dest
using (select * from Einsatzplan where ID = 1) src
on (dest.ID = 3)
when matched then update set
dest.Montag = src.Montag,
dest.Dienstag = src.Dienstag,
dest.Mitwoch = src.Mitwoch,
dest.Donnerstag = src.Donnerstag,
dest.Freitag = src.Freitag,
dest.Samstag = src.Samstag,
dest.Sonntag = src.Sonntag;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz