gpt4 book ai didi

sql-server-2008 - 使用命名参数调用内联 TVF,正确的语法是什么?

转载 作者:行者123 更新时间:2023-12-03 15:08:39 26 4
gpt4 key购买 nike

我尝试使用位置参数调用内嵌 TVF,它工作正常:

SELECT MyTable.Col1,
(SELECT TvfColumn FROM ufnGetData(MyTable.Col1, MyTable.Col2)),
MyTable.Col2
FROM MyTable
然后我尝试将参数命名为 TVF,但它没有解析:
SELECT MyTable.Col1,
(SELECT TvfColumn FROM ufnGetData(@Param1=MyTable.Col1, @Param2=MyTable.Col2)),
MyTable.Col2
FROM MyTable
该函数类似于:
CREATE FUNCTION dbo.ufnGetData
(
@Param1 INT,
@Param2 INT
)
RETURNS TABLE
AS
RETURN
(
SELECT
blah blah blah AS TvfColumn
)
GO
给出类似于以下内容的错误:

Msg 137, Level 15, State 2, Line 23 Must declare the scalar variable"@Param2".

Msg 102, Level 15, State 1, Line 24 Incorrect syntax near ','.


我究竟做错了什么?

最佳答案

不能将表值用户定义函数视为存储过程。调用它们时不要使用命名参数,它是基于位置的。因此,换句话说,您尝试做的事情是不可能的。

你有什么理由要使用命名参数吗?您需要定义所有参数,因此没有您通常会在存储过程中看到的真正好处。

关于sql-server-2008 - 使用命名参数调用内联 TVF,正确的语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8219163/

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