gpt4 book ai didi

sql - 如何在sql函数中创建新表

转载 作者:行者123 更新时间:2023-12-02 07:59:43 25 4
gpt4 key购买 nike

我创建了一个函数,该函数返回如下所示的表值

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

完成这些功能后,我正在运行以下查询。

从 TmpTable1 中选择 *

我需要的输出

Value 
********
Value1
Value2

我需要这个输出。

但是我得到了错误

Invalid use of a side-effecting operator 'SELECT INTO' within a function.

最佳答案

当您将 select * into [table]... 写入时,您必须确保 [table] 不存在。使用 insert into [table] select ... 代替。另外,当你处理变量或函数表时,你需要一个@:

CREATE FUNCTION dbo.TableValuedParameterExample11()
RETURNS @TmpTable1 table (Value VARCHAR(4000) NOT NULL)
AS
BEGIN
DECLARE @StateDescp VARCHAR(250)
INSERT INTO
@TmpTable1([Value])
SELECT
value
FROM
dbo.SplitArgs('Test')) aa

RETURN
END
GO

关于sql - 如何在sql函数中创建新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39784815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com