4405: Die Sicht oder Funktion '%1!' kann nicht aktualisiert werden, da die Änderung sich auf mehrere

By Frank Kalis

Posted on Dez 10, 2010 von in 4000-4999

Fehlermeldung:
Meldung 4405, Ebene 16, Status 1, Zeile 1
Die Sicht oder Funktion '%1!' kann nicht aktualisiert werden, da die Änderung sich auf mehrere Basistabellen auswirkt.

Ebene:
16.

Beschreibung:
Diese Fehlermeldung erscheint wenn man versucht, über einen View in mehr als eine Basistabelle Daten einzufügen.

Auswirkungen:
Das SQL Statement kann zwar geparst werden, jedoch zur Laufzeit wird der Fehler ausgelöst.

Behebung:
Fehler der Ebene 16 sind Fehler, die vom Anwender hervorgerufen werden. Sie können und müssen vom Anwender korrigiert werden. Das Statement kann so nicht ausgeführt werden. Über diesen View können keine Daten eingefügt werden. Hier bietet sich eine Stored Procedure an, die die Datenmodifikation vornimmt.

Versionen:
Alle Versionen von SQL Server

Beispiele:
USE Northwind;
GO
IF OBJECT_ID('dbo.MyOrders', 'View') > 0
 DROP VIEW dbo.MyOrders
GO
CREATE VIEW dbo.MyOrders
AS
SELECT od.Discount, o.ShippedDate
  FROM dbo.Orders o
  JOIN [Order Details] od
    ON o.OrderID = od.OrderID
GO
UPDATE dbo.MyOrders
   SET ShippedDate = NULL, Discount = NULL
 WHERE ShippedDate IS NULL

Anmerkungen:
Im obigen Beispiel wird versucht, über den View dbo.DistinctOrders Daten in die Basistabellen Orders, und [Order Details] einzugeben. Dies löst den Fehler aus.

Dieser Eintrag wurde eingetragen von und ist abgelegt unter 4000-4999.

Noch kein Feedback


Formular wird geladen...