it-swarm.com.de

Wenn ich eine Ansicht aktualisiere, werden meine Originaltabellen aktualisiert

Hypothetisch habe ich zwei Tabellen Employee und Locations. Außerdem habe ich eine Ansicht viewEmpLocation, die erstellt wird, indem Mitarbeiter und Standorte zusammengeführt werden.

Werden die Daten in der Originaltabelle aktualisiert, wenn ich die Ansicht aktualisiere?

31
Vaibhav Jain

siehe Verwenden von Ansichten in Microsoft SQL Server

Beim Ändern von Daten über eine Ansicht (dh mithilfe von INSERT- oder UPDATE-Anweisungen) bestehen je nach Ansichtstyp bestimmte Einschränkungen. Ansichten, die auf mehrere Tabellen zugreifen, können nur eine der Tabellen in der Ansicht ändern. Ansichten, die Funktionen verwenden, DISTINCT angeben oder die GROUP BY-Klausel verwenden, werden möglicherweise nicht aktualisiert. Darüber hinaus ist das Einfügen von Daten für die folgenden Arten von Ansichten verboten:

* views having columns with derived (i.e., computed) data in the SELECT-list  
* views that do not contain all columns defined as NOT NULL from the tables from which they were defined

Es ist auch möglich, Daten über eine Ansicht einzufügen oder zu aktualisieren, sodass über diese Ansicht nicht mehr auf die Daten zugegriffen werden kann, sofern nicht WITH CHECK OPTION angegeben wurde.

24
KM.

Ja.

Die Daten "in" einer Ansicht existieren nicht unabhängig von den Tabellen, aus denen die Ansicht besteht. Die Ansicht ist im Wesentlichen eine gespeicherte SELECT-Anweisung, die sich als Tabelle tarnt. Die Daten werden in den Originaltabellen gespeichert und nur dann in der Ansicht "zusammengestellt", wenn Sie sie anzeigen möchten. Wenn die Ansicht aktualisierbar ist (nicht alle Ansichten), werden die Aktualisierungen auf die Tabellendaten angewendet.

19
Larry Lustig

Sie können einen Auslöser für die Ansicht verwenden, um die tatsächlichen Tabellen einzufügen, zu aktualisieren oder zu löschen.

http://www.devarticles.com/c/a/SQL-Server/Using-Triggers-In-MS-SQL-Server/1/

4
Kyle J V