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, 3197 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 ..
Ähnliche Inhalte
Outlook & Mail
Outlook Ribbon (Menü)-Leiste QuickStep Tabelle erstellen (4)

Frage von Hirschix3 zum Thema Outlook & Mail ...

Batch & Shell
gelöst Teile eines Powershell Skriptes in einer Tabelle ausgeben (3)

Frage von ReneBue zum Thema Batch & Shell ...

Datenbanken
Informix SE Tabelle alle Felder auf NULL prüfen (4)

Frage von RalfHackmann zum Thema Datenbanken ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Update
gelöst MS: Update-Server-Adressen OHNE Wildcards (17)

Frage von mrserious73 zum Thema Windows Update ...

Viren und Trojaner
Ransomware .nm4 (14)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

Microsoft Office
+1.000 Ordner in Outlook: Wie besser? (11)

Frage von Matsushita zum Thema Microsoft Office ...