Créer, supprimer et insérer une table temporaire dans une fonction définie par l'utilisateur

Je suis en train de créer une fonction, comme par mes exigences.

Mais, quand suis-la création ou de la baisse #tempTable, il donne une erreur:

usage incorrect d'un côté-accomplissement de l'opérateur "chute d'objet" dans une fonction

Ma compréhension est que nous ne pouvons pas avoir create, drop ou insert opérations sur #temptable dans une fonction.

Est-ce exact?

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
Peu confus au sujet de votre SQL. Comment choisissez de #tempTable après que vous avez abandonné - son jamais recréé.
Veuillez trouver les mises à jour post
Si vous voulez de l'aide pour résoudre ce problème, veuillez expliquer le point de la #temptable l'intérieur de la fonction. Aussi de quoi faire avec l'Id de paramètre.
S'il vous plaît arrêter à l'aide de jointures implicites. Ils sont un SQl antipattern.

OriginalL'auteur Software Enginner | 2012-06-29