Estoy intentando crear una función según mis requisitos.Crear, colocar e insertar una tabla temporal en una función definida por el usuario
Pero, cuando estoy creando o dejar #tempTable
, se da un error como:
uso inválido de un operador efectuar lado 'objeto gota' dentro de una función
Mi entendimiento es que no podemos tener create
, drop
o insert
operaciones en #temptable
en una función.
¿Es correcto?
Mi SQL:
CREATE FUNCTION [dbo].[RT_ResultFunction]
(
Id VARCHAR(4000)
)
RETURNS @RT_ResultFunction TABLE
(
Id VARCHAR(20)
, Name varchar(20)
,Balance Int
)
AS
BEGIN
IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL
DROP TABLE #tempTable
SELECT Id, COUNT(Balance)
INTO #tempTable
'Balance' FROM Table1
INSERT @RT_ResultFunction
SELECT T1.ID,T1,NAME,T2,Balance
FROM Table2 T1,
#tempTable T2
WHERE T1.ID = T2.ID
RETURN
END
Bit confundido acerca de su SQL. Cómo seleccionar desde #tempTable después de haberlo descartado, nunca se vuelve a crear. –
Busque la publicación actualizada –
Si desea ayuda para resolver este problema, explique el punto de la #temptable dentro de la función. También qué hacer con el parámetro Id. –