Top-Themen

Aktuelle Themen (A bis Z)

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

MSSQL Trigger neue Inserts aus Sicht sollen automatisch in eine Tabelle geschrieben werden

Frage Entwicklung Datenbanken

Mitglied: btotherunner

btotherunner (Level 1) - Jetzt verbinden

12.04.2011, aktualisiert 12:06 Uhr, 4852 Aufrufe, 7 Kommentare

Hallo ich schläge mich gerade mit folgendem Problem rum.

ich habe eine Sicht "View_ZeiterfassungKomplettGrunddaten" in dieser werden aus mehreren Tabellen Daten zusammengeführt und dargestellt.
desweiteren existiert eine Tabelle "dbo.ZeiterfassungKomplett" mit gleichen Spalten wie die View + Extra spalten (STATUS1, STATUS2, STATUS3 etc..).

Hintergrund:
In der Sicht werden die Daten aus verschiedenen Tabellen zusammengeführt und angezeigt, diese Sicht wird initial einmal in die Tabelle "ZeiterfassungKomplett" eingetragen, damit man jetzt verschiedene extra Felder wie (Status1) editieren kann.
Ein Trigger soll nun alle neu hinzukommenden Einträge aus der Sicht in die Tabelle eintragen.


Leider funktioniert mein Trigger nicht... jemand eine IDEE?

01.
USE [Database1] 
02.
GO 
03.
/****** Object:  Trigger [dbo].[trCopyData]    Script Date: 04/12/2011 10:39:47 ******/ 
04.
SET ANSI_NULLS ON 
05.
GO 
06.
SET QUOTED_IDENTIFIER ON 
07.
GO 
08.
-- ============================================= 
09.
-- Author:		Markus Brunner 
10.
-- Create date: 12. April 2011 
11.
-- Description:	Automatischer Abgleich der neuen Datensätze aus der View in die Tabelle dbo.UKMCZeiterfassungKomplett 
12.
-- ============================================= 
13.
CREATE TRIGGER [dbo].[trCopyData]  
14.
   ON  [dbo].[View_ZeiterfassungKomplettGrunddaten] 
15.
   INSTEAD OF INSERT 
16.
AS 
17.
	INSERT INTO dbo.ZeiterfassungKomplett 
18.
	(MaNr, NAME, VORNAME, Datum, Kommen, Gehen, Pause, Kommentar, Wert1, Wert2, StartZuHause, EndeZuHause, PrivatPKW, km, KommenSort, DatumSort, Einsatzort, HNummer) 
19.
	SELECT MaNr, NAME, VORNAME, Datum, Kommen, Gehen, Pause, Kommentar, Wert1, Wert2, StartZuHause, EndeZuHause, PrivatPKW, km, KommenSort, DatumSort, Einsatzort, HNummer FROM inserted 
20.
GO
Mitglied: SlainteMhath
12.04.2011 um 11:21 Uhr
Moin,

die Frage die sich mir stellt:
schreibst Du

a) direkt in den View also
01.
INSERT INTO View_ZeiterfassungKomplettGrunddaten ...
oder machst Du
b) inserts/updates auf die dem View zu grundliegenden Tabellen?

Im Fall a); Gehen INSERT auf Views? Hab MSSQL schon lang nicht mehr in der Handgehabt.
Im Fall b); Da brauchst Du dann Trigger auf die einzelnen Tabellen.

lg,
Slainte
Bitte warten ..
Mitglied: btotherunner
12.04.2011 um 11:24 Uhr
also aus der view soll wirklich nur ausgelesen werden, die werte aus die die view Ihre Daten bezieht sollen unangepasst bleiben.

Das einzige was passieren soll sind, alle neuen Einträge die mit dem Befehl INSERT erstellt werden automatisch auch in die Tablle zu plazieren.

lg
Markus

a) ich mache keine INSERT auf einen VIEW sondern auf eine TABELLE
b) versteh eich nciht ^^
Bitte warten ..
Mitglied: SlainteMhath
12.04.2011 um 11:36 Uhr
a) ich mache keine INSERT auf einen VIEW sondern auf eine TABELLE
b) versteh eich nciht ^^
Der Trigger muss für die Tabelle angelegt werden, die im INSERT angesprochen wird, nicht auf einen View (der bekommt davon nix mit)
Übrigens: mit "INSTEAD OF INSERT" werden die neuen Records nicht in die übprüngliche Tabelle geschrieben.
Bitte warten ..
Mitglied: btotherunner
12.04.2011 um 11:40 Uhr
Kannst du mir anhand eines Bsp. zeigen was du meinst.

Ich habe es so verstanden:

Mein Trigger von oben muss nicht in der View als Trigger erstellt werden, sondern in der Tabelle in der die Daten reinkopiert werden.

Stimmt denn mein Trigger ansonsten?

lg
Markus
Bitte warten ..
Mitglied: SlainteMhath
12.04.2011 um 11:48 Uhr
Bespiel:
Du machst ein "INSERT INTO TabelleA values(...)" und nöchstest

a) das die Daten in TabelleA UND TabelleB stehen:
01.
CREATE TRIGGER [dbo].[trCopyData] 
02.
ON [dbo].[TabelleA] 
03.
FOR INSERT 
04.
AS 
05.
INSERT INTO TabelleB .... SELECT FROM .... inserted
b) das die Daten NUR in TabelleB stehen
01.
CREATE TRIGGER [dbo].[trCopyData] 
02.
ON [dbo].[TabelleA] 
03.
INSTEAD OF INSERT 
04.
AS 
05.
INSERT INTO TabelleB .... SELECT FROM .... inserted
Jetzt klarer?

Im Detail hier nachzulesen.
Bitte warten ..
Mitglied: btotherunner
12.04.2011 um 12:03 Uhr
Eine Frage habe ich trozdem noch

D.h. wenn ich jetzt aus der View die neuen Einträge in meiner Tabelle haben muss, gehe ich folgt vor:
Die original Daten sollen natürlich nicht angefasst/verändert o. gelöscht werden.

1. Gehe in die Tabelle (nicht in die View) um dort den Trigger zu erstellen.
2. In den Trigger trage ich
01.
CREATE TRIGGER [dbo].[trCopyData]  
02.
ON [dbo].[view_Sicht]  
03.
FOR INSERT  
04.
AS  
05.
INSERT INTO richtige_tabelle .... SELECT FROM .... inserted
3. Speichern und hoffen dass es funktioniert
Bitte warten ..
Mitglied: SlainteMhath
12.04.2011 um 12:31 Uhr
Zitat von btotherunner:
Soweit alles richtig, bis auf

ON [dbo].[view_Sicht]

TABELLE, nicht SICHT!!
Bitte warten ..
Ähnliche Inhalte
Datenbanken
TSQL - Tabellen Export als Insert Statement
Frage von ooAlbertDatenbanken3 Kommentare

Hallo, ich möchte ganz gern eine Tabelle aus meiner Datenbank (SQL Server 2008 R2) programatisch exportieren, als Insert Statment. ...

Datenbanken
MSSQL CREATE TRIGGER after UPDATE,DELETE was heißt das
gelöst Frage von MarabuntaDatenbanken1 Kommentar

Hallo, ich habe zwei Versionen: CREATE TRIGGER td . tabelle1 ON td . tabelle2 after UPDATE CREATE TRIGGER td . tabelle1 ON td . tabelle2 after UPDATE, ...

Datenbanken
Mit MS-SQL-Trigger ein Wert in eine andere Tabelle übertragen
gelöst Frage von EB-StefanDatenbanken2 Kommentare

Hallo zusammen, ich habe ein kleines Problem. Ich habe 2 Tabellen die 1:n verknüpft sind. Aufträge zu Liefertermine Es ...

Datenbanken
SQL Trigger über 2 Tabellen mit 1 Bedingung
gelöst Frage von holiboliDatenbanken1 Kommentar

Hallo ich versuche einen Trigger zu erstellen der mir die Werte von: LAG_Statistik.MengeEin in LAG_Artikel.Z_MengeEin LAG_Statistik.MengeAUS in LAG_Artikel.Z_MengeAUS LAG_Statistik.Datum ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing7 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...