271: Die "%1!"-Spalte kann nicht geändert werden, weil es sich um eine berechnete Spalte handelt
Fehlermeldung:
Meldung 271, Ebene 16, Status 1, Zeile 13
Die "%1!"-Spalte kann nicht geändert werden, weil es sich um eine berechnete Spalte handelt oder weil sie das Ergebnis eines UNION-Operators ist.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn bei einer UPDATE Operation entweder eine berechnete Spalte in einer Basistabelle aktualisiert werden soll oder diese Spalte das Ergebnis einer Berechnung in einem Statement ist, welches den UNION Operator verwendet.
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 UPDATE Statement muß derart modifiziert werden, daß die Aktualisierung der berechneten Spalte herausgenommen wird, bzw. das Statement, welches UNION verwendet, muß korrigiert werden.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
CREATE TABLE #t
(
c1 INT
, c2 INT
, c3 AS c1 * c2
)
INSERT INTO #t SELECT 1, 2
UNION ALL SELECT 2, 4
SELECT *
FROM #t
UPDATE #t
SET c3 = 1
WHERE c1 = 1
DROP TABLE #t
Anmerkungen:
Das obige Beispiel versucht durch das UPDATE Statement eine berechnete Spalte zu aktualisieren. Da dies nicht zulässig ist, wird der Fehler ausgelöst.