【发布时间】:2018-06-15 23:06:48
【问题描述】:
我想在 T-SQL 中创建一个函数,用于输入和输出用户定义表类型的实例。但是,在RETURN 语句的那一行,它抛出了一个错误:
必须声明标量变量@output_table
我的代码:
CREATE FUNCTION FUNC_NAME
(@input_table TableType READONLY,
@other_param VARCHAR(255))
RETURNS TableType
AS
BEGIN
DECLARE @output_table TableType;
INSERT INTO @output_table (Col1, Col2, Col3)
SELECT column1, column2, column3
FROM SOME_TABLE
WHERE column1 = @other_param;
RETURN @output_table;
END
有人可以向我解释我做错了什么吗?甚至可以创建一个输入和输出表类型变量的函数吗?如果没有,我可以使用任何替代方法吗?我正在使用 SQL Server Management Studio 2008 R2。
【问题讨论】:
-
谢谢。但是,我刚刚尝试过 - 现在它给了我另一个错误:“标量值函数中的返回语句必须包含一个参数。”我很困惑,因为这个函数返回一个表类型,但它不是一个表值函数?
-
应该是
RETURNS TABLE? this 是否相关?不确定是否使用未定义的表类型作为参数。
标签: sql-server tsql table-variable