【发布时间】:2014-08-25 16:05:25
【问题描述】:
我有两个 SQLServer2008 用户定义函数:fn_Top 和 fn_Nested。 第一个 fn_Top 的结构是这样的:
CREATE FUNCTION [dbo].[fn_Top]
RETURNS @Results table (
MyField1 nvarchar(2000),
MyField2 nvarchar(2000)
)
AS
BEGIN
INSERT INTO
@Results
(
MyField1,
MyField2
)
SELECT
item,
(SELECT MyString FROM dbo.fn_Nested(x.MyCounter))
FROM
OtherTable x
RETURN
END
我想执行一种动态参数传递给第二个函数 fn_Nested,读取表 OtherTable 中数字字段 MyCounter 的值。
事实是,x.MyCounter 未被识别为有效值。 另一方面,如果我在 fn_Nested 中设置一个静态参数,即 IE dbo.fn_Nested(17),则一切正常。
有没有人可以提出解决此问题的解决方法? 提前致谢。
【问题讨论】:
-
dbo.fn_Nested() 返回什么?
-
或者,更清楚地说,dbo.fn_Nested 是标量函数还是表值函数?
标签: sql-server tsql sql-server-2008-r2 parameter-passing user-defined-functions