我正在嘗試按照我的要求創建一個函數。在用戶定義的函數中創建,刪除和插入臨時表
但是,當正在創建或刪除#tempTable
,它給一個錯誤:
一個函數中無效使用了副作用的運算符'一滴對象的
我的理解是我們不能在#temptable
的函數中有create
,drop
或insert
操作。
這是正確的嗎?
我的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
位對你的SQL感到困惑。如何在刪除後從#tempTable中選擇 - 它從未重新創建。 –
請找到更新後的文章 –
如果您想要解決此問題的幫助,請在函數內部解釋#temptable的要點。另外如何處理Id參數。 –