【问题标题】:Using named parameters in Table Valued Function在表值函数中使用命名参数
【发布时间】:2013-02-11 16:44:09
【问题描述】:

有没有办法将命名参数与表值函数一起使用?我的用户坚持将它们与我的数据库对象的接口一起使用。

【问题讨论】:

  • 你在问怎么做吗? select * from dbo.SomeFunction(@p = 1) 如果是这样,答案是你不能,尽管我找不到任何具体说明的文档。知道他们为什么“坚持”会很有趣,如果他们对工具或其他问题有一些限制,那么我建议你询问这个限制,看看是否有人有替代方案。也见this question
  • 你能举一个你试过的代码的例子吗?如果他们只是想按照@Pondlife 的建议在代码中的某处看到@p = 1,您可以执行Exec sp_executeSQL 'Select * From dbo.SomeFunction(@p) As f', N'@p Int', @p = 1;。它仍然没有将@p = 1 放入函数中,但您可以看到@p = 1 作为最后的变量输入。这会安抚他们吗?

标签: sql-server tsql function sql-server-2012


【解决方案1】:

不,你不能那样做。与可以使用命名参数的存储过程不同,表值函数中的参数是严格基于位置的。

【讨论】:

    【解决方案2】:

    似乎随着 SQL-Server 2016 发生了变化。SQL Server 2016 支持 T-SQL 函数中的命名参数https://scribnasium.com/2017/01/named-parameters-in-t-sql-functions/

    【讨论】:

    • 文章中的解决方案不是很好的解决方法。它仅对返回标量值的 T-SQL 函数“正常”工作,此外...它会影响性能。
    猜你喜欢
    • 2015-07-29
    • 2010-10-04
    • 1970-01-01
    • 2015-07-03
    • 2016-08-22
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    相关资源
    最近更新 更多