什么时候使用什么功能vs Sprocs

时间:2010-02-13 16:08:57

标签: sql-server tsql

T-SQL

我试着阅读UDF和sprocs之间的区别,这里

http://realfantasy.wordpress.com/2009/01/05/sql-server-user-defined-function-udf-vs-stored-procedure-sp/

你知道更多的差异吗? 什么时候用?

由于

2 个答案:

答案 0 :(得分:7)

简而言之,函数应该返回值并且不会引起任何副作用,并且存储过程应该改变事物,导致副作用并且可选地返回值。

答案 1 :(得分:1)

请注意,该文章并不完全正确。您可以在SQL Server 2005及更高版本的UDF中使用GETDATE()等函数。它是SQL Server 2000,你不能。

我要注意的是取决于你如何使用UDF,它们会对性能产生很大的负面影响。正如您可以在查询中内联调用它们一样,如果您在(例如)WHERE子句中执行此操作以应用条件,那么这可能会导致每行对该函数进行多次调用。这会产生可怕的表现,所以要记住。