3747: Ein gruppierter Index, der für eine Sicht erstellt wurde, kann nicht mit der DROP INDEX
Fehlermeldung:
Meldung 3747, Ebene 16, Status 1, Zeile 1
Ein gruppierter Index, der für eine Sicht erstellt wurde, kann nicht mit der DROP INDEX-Klausel für einen gruppierten Index gelöscht werden. Der gruppierte '%1!'-Index wurde für die '%2!'-Sicht erstellt.
Ebene:
16.
Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht einen gruppierten Index, der für eine Sicht erstellt wurde, per DROP INDEX mit Optionen für gruppierte Indices zu löschen.
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. Die DROP INDEX Optionen für gruppierte Indices müssen aus dem Statement entfernt werden.
Versionen:
Alle Versionen von SQL Server.
Beispiele:
USE Northwind;
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(od.UnitPrice*od.Quantity*(1.00-od.Discount)) AS Revenue,
o.OrderDate, od.ProductID, COUNT_BIG(*) AS MyCount
FROM dbo.[Order Details] AS od
JOIN dbo.Orders AS o
ON od.OrderID = o.OrderID
GROUP BY o.OrderDate, od.ProductID;
GO
CREATE UNIQUE CLUSTERED INDEX cix_MyOrderView
ON dbo.MyOrderView (OrderDate, ProductID);
GO
DROP INDEX cix_MyOrderView ON MyOrderView
WITH (ONLINE = ON)
Anmerkungen:
Im obigen Beispiel wird versucht den gruppierten Index der für die Sicht MyOrderView erstellt wurde online zu löschen. Dies löst den Fehler aus.