una tipo temporales tablas tabla stored partir las funciones eliminar donde dinamica crear consultar consulta almacenan sql-server-2008 tsql function temp-tables

sql server 2008 - tipo - Usar una tabla temporal en una tabla de funciones con valores



tablas temporales en funciones sql server (2)

Estoy tratando de usar una tabla temporal en una función con valores de tabla, pero parece que no puedo. ¿Hay alguna otra forma en que pueda usar una tabla temporal en una función con valores de tabla?

CÓDIGO ACTUAL:

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


No.

Puedes usar @table_variables sin embargo. Aunque a simple vista, quizás un CTE recursivo podría funcionar para usted en lugar de usar estas tablas hijo / padre.


Puede utilizar una variable de tabla en su lugar.

DECLARE @Child TABLE (Id INT, Name VARCHAR(255), ParentId INT, ParentName VARCHAR(255)) DECLARE @Parent TABLE (Id INT, Name VARCHAR(255), ParentId INT, ParentName VARCHAR(255))