需要从View调用CLR表值UDF

时间:2013-08-28 01:16:26

标签: sql-server clr sql-server-2012

这听起来不太难,对吗?但确实如此。

有人有一个程序可以通过以下方式调用我的视图:

SELECT * FROM view WHERE ID=6

视图必须将6传递给UDF(用C#编写并且在T-SQL中太复杂了):

SELECT * FROM udf(6)

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

我会屈服于任何级别来实现这一目标。请帮忙。谢谢。

1 个答案:

答案 0 :(得分: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具有多个参数,这种方法可能几乎无用,如果它具有可数不佳或不可数类型的参数,则无用。