函数中创建新表创建一个函数,该函数返回像下面如何在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