函數中創建新表創建一個函數,該函數返回像下面如何在SQL
CREATE FUNCTION dbo.splitText(@strArgs VARCHAR(4000))
RETURNS @tab TABLE
(
[Key] VARCHAR(255) NOT NULL,
Value VARCHAR(4000) NOT NULL
)
AS
BEGIN
INSERT INTO @tab VALUES('Key1', 'Value1')
INSERT INTO @tab VALUES('Key2', 'Value2')
RETURN
END
GO
OUtput:
Key Value
*************
Key1 Value1
Key2 Value2
第二個功能我需要的,是從上述機能的研究返回表值的表值。
CREATE FUNCTION dbo.TableValuedParameterExample11()
RETURNS @TmpTable1 table (Value VARCHAR(4000) NOT NULL)
AS
BEGIN
DECLARE @StateDescp VARCHAR(250)
Select * into TmpTable1 from (Select value from dbo.Splittext('Test')) aa
RETURN
END
GO
完成功能後,我正在運行下面的查詢。
Select * from TmpTable1
。
輸出,我需要
Value
********
Value1
Value2
我需要這一點放。
但是當你寫select * into [table]...
你必須確保在[table]
不列入存在我得到了錯誤
Invalid use of a side-effecting operator 'SELECT INTO' within a function.
您需要使用存儲過程。在函數 –
中不允許使用DDL,但我需要多次調用該函數。所以需要結束我可以使用「Select * from TmpTable1」這個查詢@Nadeem – Meline
如果第二個函數中的TmpTable1是一個基表,你不能插入任何記錄,因爲函數不需要使用存儲過程,它將與聲明的表一起工作。 – Nadeem