Sto tentando di utilizzare una tabella temporanea in una funzione con valori di tabella, ma sembra che non sia possibile. C'è un altro modo in cui posso usare una tabella temporanea in una funzione con valori di tabella?Utilizzare una tabella temporanea in Funzioni con valori di tabella
codice corrente:
CREATE FUNCTION dbo.fnt_AllChildren (#ParentName VARCHAR(255))
RETURNS @return_variable TABLE
(
Id INT,
Name VARCHAR(255),
ParentId INT,
ParentName VARCHAR(255)
)
AS
BEGIN
CREATE TABLE #Child (Id INT, Name VARCHAR(255), ParentId INT, ParentName VARCHAR(255))
CREATE TABLE #Parent (Id INT, Name VARCHAR(255), ParentId INT, ParentName VARCHAR(255))
INSERT #Child (Id, Name, ParentId, ParentName)
SELECT child.Id, child.Name, child.ParentId, parent.Name
FROM dbo.t_mytable child
INNER JOIN dbo.t_mytable parent ON child.ParentId = parent.Id
WHERE parent.Name = #ParentName
WHILE (@@ROWCOUNT > 0)
BEGIN
INSERT INTO @return_variable
SELECT * FROM #Child
DELETE FROM#Parent
INSERT INTO #Parent
SELECT * FROM #Child
DELETE FROM #Child
INSERT INTO #Child (Id, Name, ParentId, ParentName)
SELECT child.Id, child.Name, child.ParentId, parent.Name
FROM dbo.t_mytable child
INNER JOIN #Parent parent ON child.ParentId = parent.Id
END
RETURN
END
GO