【问题标题】:SQL Server: How to call table valued function without providing input parameter valuesSQL Server:如何在不提供输入参数值的情况下调用表值函数
【发布时间】:2017-12-22 21:40:32
【问题描述】:

我需要在 SQL Server 中创建一个表值函数。该函数有输入参数,但它们都有默认值。如果我想使用每个输入参数的默认值从函数中选择,我不知道如何调用该函数。

以下是 CREATE FUNCTION 以及我在不提供输入参数值的情况下调用它的四次尝试。四次尝试都失败了:

CREATE FUNCTION fx_my_table_valued_function
(@my_input_parameter AS VARCHAR(30) = 1)
RETURNS TABLE
RETURN SELECT 'x' AS my_column;

select * from fx_my_table_valued_function;
select * from fx_my_table_valued_function();
select * from [fx_my_table_valued_function];
select * from [fx_my_table_valued_function]();

提前感谢您的帮助。

【问题讨论】:

  • 您必须使用 DEFAULT 关键字。这不是很有用。 rextester.com/ILQTK99749。不可能像在其他语言中那样完全省略参数。或者对于存储过程。

标签: sql-server-2017


【解决方案1】:

试试这个:

CREATE FUNCTION fx_my_table_valued_function
(@my_input_parameter AS VARCHAR(30) = 1)
RETURNS @tbl TABLE (my_column VARCHAR(max))
AS
BEGIN
RETURN 
END

然后:

SELECT * FROM fx_my_table_valued_function(default)

SQL Fiddle

【讨论】:

    猜你喜欢
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 2022-10-12
    相关资源
    最近更新 更多