1959: Ein Index für eine Sicht oder eine berechnete Spalte kann nicht erstellt werden
Fehlermeldung:
Meldung 1959, Ebene 16, Status 1, Zeile 2
Ein Index für eine Sicht oder eine berechnete Spalte kann nicht erstellt werden, da der Kompatibilitätsgrad dieser Datenbank kleiner ist als 80.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht, eine indizierte Sicht für eine Datenbank zu erstellen, deren Kompatibilitätlevel kleiner als 80 ist.
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. Ein Index auf einer Sicht kann nur dann erstellt werden, wenn der Kompatibilitätslevel der Datenbank mindestens gleich 80 ist.
Versionen:
Alle Versionen von SQL Server (ab SQL Server 2000).
Beispiele:
USE Northwind;
GO
EXEC sp_dbcmptlevel 'Northwind', '70'
GO
SET NUMERIC_ROUNDABORT OFF;
SET ANSI_PADDING,
ANSI_WARNINGS,
CONCAT_NULL_YIELDS_NULL,
ARITHABORT,
QUOTED_IDENTIFIER,
ANSI_NULLS ON;
GO
IF OBJECT_ID ('dbo.MyOrderView', 'View') > 0
DROP VIEW dbo.MyOrderView;
GO
CREATE VIEW dbo.MyOrderView
WITH SCHEMABINDING
AS
SELECT SUM(UnitPrice*Quantity*(1.00-Discount)) AS Revenue,
OrderDate, ProductID, COUNT_BIG(*) AS MyCount
FROM dbo.[Order Details] AS od
JOIN dbo.Orders AS o
ON od.OrderID = o.OrderID
GROUP BY OrderDate, ProductID;
GO
CREATE CLUSTERED INDEX cix_MyOrderView
ON dbo.MyOrderView (OrderDate, ProductID);
GO
Anmerkungen:
Im obigen Beispiel wird der Kompatibilitätgrad der Northwind Datenbank bewußt auf 70 gesetzt. Der anschließende Versuch, eine indizierte Sicht zu erstellen, löst den Fehler aus.