Aktualisierung oder Einfügen der Ansicht oder Funktion fehlgeschlagen, da sie ein abgeleitetes oder konstantes Feld enthält

8

Ich habe versucht, zu verstehen, was mit der folgenden Ansicht falsch ist, und leider konnte ich meine Antwort nirgendwo finden, außer dass ich Auslöser verwendete, die ich gerne vermeiden würde. Angesichts der folgenden Ansicht, wenn ich versuche, in es einzufügen, bekomme ich den Fehler oben, aber wenn ich den inneren Beitritt zu der Firma Tabelle entfernen, scheint alles gut zu funktionieren:

%Vor%

Hier ist meine Einfügung, ich füge nur in [CheckUser] oder [CheckCompany] ein:

%Vor%

CheckToTypeID ist meine Check-Einschränkung, gibt es eine Möglichkeit, diese Ansicht mit inneren Joins arbeiten zu lassen? Wenn ich die inneren Verbindungen wieder entferne, kann ich sie wieder zum Laufen bringen, aber ich möchte sie wenn möglich behalten.

Ich benutze SQL Server 2012, jede Hilfe wird geschätzt.

Danke, Paul

    
user3800174 24.08.2014, 13:49
quelle

2 Antworten

7

Das ist ein bisschen lang für einen Kommentar.

Ich kann die 2012-Dokumentation zu diesem Thema nicht finden, aber die SQL Server 2008 Dokumentation ist ziemlich klar:

  

Eine Ansicht wird als aktualisierbare partitionierte Sicht angesehen, wenn die Sicht a ist   Menge von SELECT-Anweisungen, deren einzelne Ergebnismengen kombiniert werden   in eine mit der UNION ALL-Anweisung. Jede SELECT-Anweisung   Verweist auf eine SQL Server-Basistabelle.

Sie haben zwei Tabellen in der from -Klausel, daher ist sie nicht aktualisierbar. Es ist eine schreibgeschützte Ansicht. Mir ist nicht bewusst, dass dies 2012 geändert wurde.

    
Gordon Linoff 24.08.2014, 14:02
quelle

Tags und Links