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