Создать, удалить и вставить временную таблицу в определяемую пользователем -функцию

Я пытаюсь создать функцию в соответствии с моими требованиями.

Но когда я создаю или удаляю #tempTable, это дает ошибку как:

invalid use of a side-effecting operator 'drop object' within a function

Насколько я понимаю, у нас не может быть операций create, dropили insertнад #temptableв функции.

Это правильно?

Мой 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
7
задан marc_s 29 June 2012 в 20:42
поделиться