2008-12-24 26 views

回答

1

您可以在SQL语句中嵌入函数,就像您使用像COALESCE,CONVERT等任何原生SQL函数一样.Procs可以返回一个值,但返回的值是有限的。例如,如果我记得正确的话,你可以从一个函数返回一个表变量,但不是存储过程。

所以有一个函数,你可以做这样的事情:

SELECT dbo.MyFunc(myColumn) as [Column Alias Name] FROM MyTable 

SELECT * FROM dbo.MyTableVariableReturningFunc() as tbl 

随着存储的特效,你可以得到的返回值,像这样:

DELCARE @ReturnVal as int 

EXEC @ReturnVal = USP_MyStoredProc 
1

另一个diffrenc e是用户定义的函数不能修改数据库数据,而程序可以。

0

从逻辑上讲,对于我来说,在任何查询的整个数据库中,一个函数将用于执行常见的任务。另一方面,存储过程将用于执行定期完成的复杂任务,但不常见。例如,我通常编写的存储过程将从文件中获取数据并上传到表中(同时在审核等过程中执行许多其他操作)。这不是在其他地方使用的东西,但我会每天运行一次。