Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Trigger zum updaten einer Tabelle- aber wie?

Frage Entwicklung Datenbanken

Mitglied: xhutzelx

xhutzelx (Level 1) - Jetzt verbinden

29.08.2007, aktualisiert 01.09.2007, 3179 Aufrufe, 2 Kommentare

Benötige Hilfe bei der Programmierung eines Triggers

Stand der Dinge, ich habe zwei Tabellen:

Tabelle_Maschine und Tabelle_Individual

In beiden Tabellen existiert ein Feld ClientID, das nur eindeutige Werte enthalten (Primary Key) und nicht Null sein darf.

Außerdem existieren in Tabelle_Maschine die Spalten Manufacturer und Serial.
In Tabelle_Individual existieren außerdem die Felder Hersteller und SerienNr.

Das Problem ist, dass die Anwendung, die diese SQL- Tabellen nutzt, Werte nur automatisch in Tabelle_Maschine schreibt, aber nicht automatisch in Tabelle_Individual.

Die Spalten von Tabelle_Maschine werden auch nicht komplett befüllt, da die Anwendung bestimmte Werte nicht ausliest und stattdessen 00000 oder gar nichts reinschreibt.

Als Ersatz werden nun Werte in Tabelle_Individual manuell eingetragen, denn das sind die Werte, für die Zeilen in Tabelle_Maschine, in denen die Nullen oder gar nichts steht.

In Tabelle_Individual sind nicht zwangsläufig genauso viele Zeilen, wie in Tabelle_Individual vorhanden. Eher weniger.

Ich hoffe, das ist nun klar. In Tabelle_Maschine kann ich nichts manuell eintragen, da nach einem Daten-Scan diese Einträge wieder überschrieben würden.

Am einfachsten wäre es nun, wenn die Tabelle_Maschine zwar noch existieren würde, aber deren Datenzeilen, die für die Felder Manufacturer und Serial UNGLEICH 00000 oder nicht leer sind, in Tabelle_Individual geschrieben würden.
Und zwar die Werte von Manufacturer in Händler und die von Serial in SerienNr.

Aber aufgepasst: Es existieren schon Datensätze in der Tabelle_Individual.

D.h., es müssen zunächst die entsprechenden Felder in Tabelle_Individual befüllt werden, die mit der ClientID der Tabelle_Machine identisch sind. Als nächstes müssen die Datensätze mit der ClientID hinzugefügt werden, für die in Tabelle_Individual noch keine ClientID existiert, und nur die oben genannten Felder, wenn diese UNGLEICH 00000 und NICHT LEER sind.

Besser wäre es gewesen, der Trigger hätte von Anfang an schon existiert, dann hätte der wohl ein AFTER INSERT, UPDATE sein können.
Oder kann ich jetzt einen erstellen, der mir sofort und auch zukünftig die Werte wie oben beschrieben rüberschreibt?

Ich hoffe, es ist irgendwie klar, was ich machen will... wäre für einen kompletten Trigger dankbar, da kein SQL-Profi.
LG
Mitglied: pi314
29.08.2007 um 11:37 Uhr
Hi,

um was für ein DB handelt es sich denn?
Oracle, MySQL, ...
Bitte warten ..
Mitglied: Desperado
01.09.2007 um 08:17 Uhr
trigger on tbl_machine 4 update/insert

-- Update wird nur ausgeführt, wenn ID vorhanden
update tbl_individual set hersteller = b.manufacturer from tbl_individual a, inserted b
where a.clientid = b.clientid and b.manufacturer is not null and b.manufacturer <> '00000'
update tbl_individual set seriennr = b.serial from tbl_individual a, inserted b
where a.clientid = b.clientid and b.serial is not null and b.serial <> '00000'
--Insert
insert into tbl_indivdual (clientid, hersteller, seriennr) select clientid, manufacturer, serial from
inserted where manufacturer is not null and serial is not null and manufacturer <> '00000'
and serial <> '00000'
and b.clientid not in (select clientid from tbl_individual)
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Exchange Server
gelöst Exchange 2013 lässt sich nicht Updaten (9)

Frage von onkel87 zum Thema Exchange Server ...

Microsoft Office
Pivot Tabelle schützen ohne Datenabschnitt (1)

Frage von lupi1989 zum Thema Microsoft Office ...

Server
gelöst SQL-Tabelle portieren und dabei Daten konvertieren (1)

Frage von menace zum Thema Server ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...