Sto tentando di creare una funzione secondo le mie esigenze.Creare, rilasciare e inserire una tabella temporanea in una funzione definita dall'utente
Ma, quando sono la creazione o cadere #tempTable
, si sta dando un errore come:
uso non valido di un operatore di side-effettuando 'oggetto drop' all'interno di una funzione
la mia comprensione è che non possiamo avere operazioni create
, drop
o insert
su #temptable
in una funzione.
È corretto?
My 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 confusi sul tuo SQL. Come si seleziona da #tempTable dopo averlo eliminato, non viene mai ricreato. –
Si prega di trovare il post aggiornato –
Se si desidera aiutare a risolvere questo problema, si prega di spiegare il punto del #temptable all'interno della funzione. Inoltre cosa fare con il parametro Id. –