Ich versuche, eine persistente berechnete Spalte CASE-Ausdruck zu erstellen:Warum ist mein CASE-Ausdruck nicht deterministisch?
ALTER TABLE dbo.Calendar ADD PreviousDate AS
case WHEN [Date]>'20100101' THEN [Date]
ELSE NULL
END PERSISTED
MSDN klar sagt, dass CASE deterministisch ist, here
Jedoch bin ich eine Fehlermeldung bekommen,:
Msg 4936, Level 16, State 1, Line 1 Computed column 'PreviousDate' in table 'Calendar' cannot be persisted because the column is non-deterministic.
Natürlich kann ich eine skalare UDF erstellen und sie explizit als deterministisch deklarieren, aber gibt es einen einfacheren Weg dazu? Ich bin bereits dabei, das neueste Service Pack zu bekommen. Vielen Dank.
Alte Frage, ich weiß, aber wie schlagen Sie vor, * "erstellen eine skalare UDF und deklarieren sie explizit als deterministisch" * in SQL Server. Mir wurde gesagt, dass Sie dies in Oracle tun können, aber ich habe noch nie einen Weg in SQL Server gesehen ... – jimbobmcgee