从.NET调用表值SQL函数
时间:2020-03-05 18:39:13 来源:igfitidea点击:
可以从.NET调用标量值函数,如下所示:
SqlCommand cmd = new SqlCommand("testFunction", sqlConn); //testFunction is scalar cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("retVal", SqlDbType.Int); cmd.Parameters["retVal"].Direction = ParameterDirection.ReturnValue; cmd.ExecuteScalar(); int aFunctionResult = (int)cmd.Parameters["retVal"].Value;
我也知道可以通过类似的方式来调用表值函数,例如:
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参数获取返回的表)。
解决方案
回答
否,因为我们需要选择它们。但是,我们可以创建一个存储的proc包装器,这可能会使具有表功能的问题失去作用。