2

这听起来不太难,对吧?但它是。

有人有一个程序会用这样的方式调用我的视图:

SELECT * FROM view WHERE ID=6

视图必须将 6 传递给UDF(用 C# 编写,在 T-SQL 中太复杂而无法执行):

SELECT * FROM udf(6)

UDF 存在并且有效。我无法弄清楚如何编写视图以获取其 WHERE 子句中的 ID 作为 udf 的参数。

我会不遗余力地做到这一点。请帮忙。谢谢你。

4

1 回答 1

0

您可以尝试以下构造(尽管我认为这是一个坏主意):

create view myView
as
    select IDs.ID, f.Value
    from (values (1), (2), (3), (4), (5), (6)) IDs(ID) -- possible ID values
        cross apply udf(IDs.ID) f
GO

select * from myView where ID=6

然而,如果 UDF 有多个参数,这种方法可能几乎没用,如果它有可数不良或不可数类型的参数,这种方法也无用。

于 2013-08-28T09:23:16.003 回答