2008-08-12 23 views
27

标量值函数可以从.NET如下调用:调用表值SQL函数从.NET

String query = "select * from testFunction(param1,...)"; //testFunction is table-valued 
SqlCommand cmd = new SqlCommand(query, sqlConn); 
SqlDataAdapter adapter = new SqlDataAdapter(cmd); 
adapter.Fill(tbl); 

我的问题是,表值函数可以称为存储过程,如标量值函数可以吗? (例如,复制我的第一个代码片段与调用的表值函数并通过ReturnValue参数获取返回的表)。

+1

@ChuckConway为什么从标题中删除C#?这是有效的,考虑到C#标签...但该标签不能帮助它,在谷歌显示。 – 2014-01-13 23:58:22

回答

19

不,因为您需要选择它们。但是,您可以创建一个存储proc包装器,这可能会破坏具有表函数的点。

+0

我不认为这会真正打败拥有表值函数的观点。具有TVF的一点是,他们有一定的安全保证,存储过程不会。还有一点是它们可以被重用,然而重复使用存储过程而不简单地复制和粘贴要困难得多。 – user420667 2016-08-02 16:45:32