Update-Trigger in SQL Server 2008
Habe ich eine Sicht in SQL server 2008, das aus der Verbindung von über 5 verschiedene Tabellen für den Zugriff auf die Daten, die ich brauche.
Wie würde ich ein update-trigger zum aktualisieren eines Feldes innerhalb dieser Ansicht? So zum Beispiel, wenn ich wollte zu aktualisieren, alle Vornamen peter, wenn der Nachname ist smith.
If Fname = peter
update Sname to Smith
end if
Vielen Dank im Voraus
UPDATE
dies ist, was ich bisher
CREATE TRIGGER SurName
ON ViewCustomer
AFTER UPDATE
AS
if FName= 'Peter'
BEGIN
update ViewCustomer set SName= 'Smith'
SET NOCOUNT ON;
END
GO
- Was habt Ihr bisher ausprobiert und was bestimmtes problem haben Sie? Haben Sie gelesen, was die Dokumentation sagt zum erstellen von Trigger auf views?
- hi Pondlife habe ich aktualisiert meine Frage mit dem code habe ich versucht, aber es zeigt eine Fehlermeldung, die es finden kann meine Ansicht", ViewCustomer'. "Das Objekt 'ViewCustomer' existiert nicht oder ist ungültig für diesen Vorgang."
- Können Sie uns zeigen, anzeigen
ViewCustomer
? - Sie müssen die Verwendung eines instead of-triggers und die Aktualisierung der zugrunde liegenden Tabellen in Abhängigkeit von den Zeilen in die virtuellen Tabellen "inserted" und "deleted"
- Wie ich schon sagte, haben Sie gelesen, was die Dokumentation sagt über das hinzufügen von Triggern, sichten? Es besagt eindeutig, dass nur
INSTEAD OF
Trigger erstellt werden können, auf Ansichten, so sollten Sie nicht erwarten, eineAFTER
trigger zu arbeiten. Was passiert, wenn Sie wieder schreiben Sie Ihre trigger alsINSTEAD OF
auslösen? Haben Sie auch gelesen, was die Dokumentation sagen zu aktualisierbaren sichten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser sollte den job tun.
Tabellen-und view-Definitionen.
Trigger-definition.
Sample-Daten
Diesem update wird die Ursache der trigger zum aktualisieren der SName auf 'Smith'
Hier ist ein SQLFiddle für Sie.
Erstellen Sie einen INSTEAD OF-trigger für views. Sie können überprüfen auf:
http://msdn.microsoft.com/en-us/library/ms188601.aspx