10143: %1! kann für die "%2!"-Sicht nicht erstellt werden, weil eine Rangfolge

Fehlermeldung:
Meldung 10143, Ebene 16, Status 1, Zeile 2
%1! kann für die "%2!"-Sicht nicht erstellt werden, weil eine Rangfolge- oder Aggregatfensterfunktion enthalten ist. Entfernen Sie die Funktion aus der Sichtdefinition. Alternativ können Sie auch die Sicht nicht indizieren.

Ebene:
16.

Beschreibung:
Diese Fehlermeldung erscheint, wenn in einer indizierten Sicht eine Rangfolge- oder Aggregatfensterfunktion verwendet werden soll.

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. Rangfolge- oder Aggregatfensterfunktionen können in indizierten Sichten nicht verwendet werden.

Versionen:
Diese Fehlermeldung wurde mit SQL Server 2005 eingeführt.

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 ROW_NUMBER() OVER(ORDER BY o.OrderDate) AS rid, od.UnitPrice*od.Quantity AS Revenue,
    o.OrderDate, od.ProductID
  FROM dbo.[Order Details] AS od
  JOIN dbo.Orders AS o
    ON od.OrderID = o.OrderID
GO

CREATE UNIQUE CLUSTERED INDEX cix_MyOrderView
    ON dbo.MyOrderView (OrderDate, ProductID);
GO

Anmerkungen:
Im obigen Beispiel wird versucht die ROW_NUMBER() Funktion in einer indizierten Sicht zu verwenden. Dies löst den Fehler aus.

Noch keine Bewertungen