SQL Server Fehlermeldungen

  • InsideSQL.org home
  • Kontakt
  • Anmelden
  • « 10138: Das %1!-Objekt kann für die '%2!'-Sicht nicht erstellt werden, da in der Auswahlliste
  • 10125: Das %1!-Objekt kann für die "%2!"-Sicht nicht erstellt werden, weil das "%3!"-Aggregat »

10137: Das %1!-Objekt kann für die "%2!"-Sicht nicht erstellt werden, weil auf den allgemeinen

posted on Nov 25, 2010 von Frank Kalis in 10000-10999

Fehlermeldung:
Meldung 10137, Ebene 16, Status 1, Zeile 2
Das %1!-Objekt kann für die "%2!"-Sicht nicht erstellt werden, weil auf den allgemeinen Tabellenausdruck "%3!" verwiesen wird. Sichten, die auf allgemeine Tabellenausdrücke verweisen, können nicht indiziert werden. Indizieren Sie die Sicht nicht, oder entfernen Sie den allgemeinen Tabellenausdruck aus der Sichtdefinition.

Ebene:
16.

Beschreibung:
Diese Fehlermeldung erscheint, wenn in einer indizierten Sicht auf eine Common Table Expression verwiesen 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. Common Table Expressions können in indizierten Sichten nicht verwendet werden.

Versionen:
Alle Versionen von SQL Server.

Beispiele:
USE tempdb;
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
IF OBJECT_ID('tempdb.dbo.t') > 0
DROP TABLE t
GO
CREATE TABLE t
(
id INT,
reportToID INT NULL,
)
INSERT INTO t SELECT 1, NULL
UNION ALL SELECT 2, 1
UNION ALL SELECT 3, 1
UNION ALL SELECT 4, 2
GO
CREATE VIEW dbo.MyOrderView
WITH SCHEMABINDING
AS
WITH MyCTE (id, reportToID, Level)
AS
(
SELECT t1.ID, t1.reportToID, 0 AS Level
FROM dbo.t AS t1
WHERE reportToID IS NULL
UNION ALL
SELECT t1.ID, t1.reportToID, Level + 1
FROM dbo.t AS t1
JOIN MyCTE AS t2
ON t1.reportToID = t2.ID
)
SELECT id, reportToId, Level
FROM MyCTE
GO

CREATE UNIQUE CLUSTERED INDEX cix_MyOrderView
ON dbo.MyOrderView (ID);
GO

Anmerkungen:
Im obigen Beispiel wird versucht in der einer indizierten Sicht auf die CTE MyCTE verwiesen werden soll. Dies löst den Fehler aus.

Noch kein Feedback


Formular wird geladen...

Kommentar-Feed für diesen Eintrag

Alle Blogs

  • =tg=
  • Andreas Wolter
  • Armin Neudert
  • Christoph Ingenhaag
  • cmu
  • Downloads
  • Falk Krahl
  • Fehlermeldungen
  • Frank Kalis
  • Holger Schmeling
  • InsideSQL.org Blogs
  • Klaus Oberdalhoff
  • Olaf Pietsch
  • Pressemitteilungen
  • Sascha Lorenz
  • tosc
  • Uwe Ricken
  • Weblinks

XML-Feeds

  • RSS 2.0: Einträge, Kommentare
  • Atom: Einträge, Kommentare
  • RDF: Einträge, Kommentare
  • RSS 0.92: Einträge, Kommentare
What is RSS?

©2025 by Frank Kalis • Kontakt • Hilfe • Build your own website!

Community CMS