2772: In einer Funktion kann nicht auf temporäre Tabellen zugegriffen werden.

By Frank Kalis

Posted on Jun 24, 2011 von in 2000-2999

Fehlermeldung:
Meldung 2772, Ebene 16, Status 1, Zeile 8
In einer Funktion kann nicht auf temporäre Tabellen zugegriffen werden.

Ebene:
16.

Beschreibung:
Diese Fehlermeldung erscheint, wenn man versucht innerhalb einer benutzerdefinierten Funktion auf eine temporäre Tabelle zuzugreifen.

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. In einer benutzerdefinierten Funktion kann nicht auf temporäre Tabellen zugegriffen werden.

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

Beispiele:
USE tempdb;
GO
IF OBJECT_ID('tempdb..#t') > 0
 DROP TABLE #t
GO
CREATE TABLE #t
(
 id INT NOT NULL
);
GO
IF OBJECT_ID('dbo.MyInt', 'function') > 0
 DROP FUNCTION dbo.MyDate
GO
CREATE FUNCTION dbo.MyDate(@i AS INT)
RETURNS INT
WITH EXECUTE AS CALLER
AS
BEGIN
 RETURN (SELECT id
           FROM #t
          WHERE id = @i)
END;
GO

Anmerkungen:
Im obigen Beispiel wird versucht innerhalb der Funktion MyInt auf die Tabelle #t zuzugreifen. Dies löst den Fehler aus.

Dieser Eintrag wurde eingetragen von und ist abgelegt unter 2000-2999.

Noch kein Feedback


Formular wird geladen...