从 SQL 中的函数输入和输出 table
Input and output a table from a function in SQL
我想在 T-SQL 中创建一个函数,它输入和输出用户定义的 table 类型的实例。但是,在 RETURN
语句的那一行,它抛出一个错误:
Must declare the scalar variable @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
有人可以向我解释我做错了什么吗?甚至可以创建一个输入和输出 table 类型变量的函数吗?如果没有,我可以使用其他方法吗?我正在使用 SQL Server Management Studio 2008 R2。
你目前不知道,或者至少我不知道如何做,也找不到例子。这有点道理,因为当您 return 一个 table/dataset 时,它不需要是特定的 table 类型,因为它是一个通用数据集。
这是如何完成的:
CREATE TYPE IntTableType AS TABLE (ID INT);
GO
CREATE FUNCTION FUNC_NAME(@input_table IntTableType readonly)
RETURNS @output_table TABLE(ID VARCHAR(20))
AS
BEGIN
INSERT INTO @output_table (ID)
SELECT CONVERT(VARCHAR(20),ID)
FROM @input_table
RETURN;
END
GO
我想在 T-SQL 中创建一个函数,它输入和输出用户定义的 table 类型的实例。但是,在 RETURN
语句的那一行,它抛出一个错误:
Must declare the scalar variable @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
有人可以向我解释我做错了什么吗?甚至可以创建一个输入和输出 table 类型变量的函数吗?如果没有,我可以使用其他方法吗?我正在使用 SQL Server Management Studio 2008 R2。
你目前不知道,或者至少我不知道如何做,也找不到例子。这有点道理,因为当您 return 一个 table/dataset 时,它不需要是特定的 table 类型,因为它是一个通用数据集。
这是如何完成的:
CREATE TYPE IntTableType AS TABLE (ID INT);
GO
CREATE FUNCTION FUNC_NAME(@input_table IntTableType readonly)
RETURNS @output_table TABLE(ID VARCHAR(20))
AS
BEGIN
INSERT INTO @output_table (ID)
SELECT CONVERT(VARCHAR(20),ID)
FROM @input_table
RETURN;
END
GO