【发布时间】:2019-10-02 18:06:07
【问题描述】:
目标:
我想在我的函数中有一个参数,以允许用户输入值列表。理想情况下,最简单的解决方案...注意:我没有权限在 dbs 中创建表。
情况:
CREATE FUNCTION dbo.fnExample
(
@StartDate AS Date -- Parameter 1
@ParameterArray AS ... -- This would be the parameter that accepts a list of values
)
RETURNS TABLE
AS
RETURN
...code...
GO
不确定如何在 TVF 中传递多个参数,但这是我查看解决方案的方式
SELECT *
FROM dbo.fnExample ('2019-01-01') and ([list of values])
【问题讨论】:
-
使用表类型参数。
-
如果您没有权限为 TVP 创建必要的类型,here 是对替代方案的更广泛讨论。
-
您没有创建表的权限,但可以创建函数?
-
好吧,试着运行 larnu 的答案。如果你得到一个结果而不是错误,那么你就有了答案。如果你得到一个权限错误,那么是时候回到绘图板了。
-
能够创建函数但不能创建表是合乎逻辑的。函数是代码,但表需要规划存储和适当的设计,一些 DBA 可能希望更仔细地控制。
标签: sql arrays sql-server parameters user-defined-functions