SQL Server - 将表传递给函数......怎么样?这是一个好主意吗?

时间:2013-12-18 18:29:30

标签: sql sql-server stored-procedures sql-function

我有一个存储过程来查询我的一个表。对于该表,我希望它添加另一列,其值由函数计算。

该函数是另一个带有子查询的查询,它基于另一个表中的用户数据。

现在由于有很多行要进行计算,我认为函数会为每一行反复查询相同的数据。

我想我可能会在存储过程中查询函数所需的数据并将其保存在临时表中,并将该表传递给函数,以便该函数实际查询内存中的小表而不是查询真实的桌子 - 这样可以让它变得更快,并且在我真实的桌子上没有太多的IO。

我的问题实际上是两部分:

  1. 就是我说的甚至有意义吗?它是一个很好的解决方案,可以使它更快,更有效吗?或者是将表数据传递给函数需要高成本吗?
  2. 如何将表传递给函数?
  3. 由于

    修改

    BTW - 它是一个标量函数

1 个答案:

答案 0 :(得分:0)

您可以在MS SQL Server 2008及更高版本的存储过程或函数中使用表值参数:

http://technet.microsoft.com/en-us/library/bb510489.aspx