SQL Server:存储过程可以执行哪些用户定义的函数?

时间:2010-02-02 14:37:53

标签: sql-server stored-procedures sql-server-2000 user-defined-functions

当有UDF时,你能告诉我存储过程的需要吗?

5 个答案:

答案 0 :(得分:2)

在我的脑海中,存储过程可以执行以下UDF无法执行的操作:

1)修改数据

2)将结果集返回给客户端

3)执行非确定性活动

答案 1 :(得分:1)

一个程序可以运行DML,一个函数不能运行。

通常,函数被设计为用作查询的一部分,而存储过程是一批SQL语句一起运行,实现一些业务逻辑,可能具有不同的凭证。

答案 2 :(得分:1)

函数不能以任何方式直接更改或更新数据库,可以通过DML(INSERT,UPDATE,DELETE,ect)语句或DDL(CREATE TABLE等)语句。它也不能做任何可能间接导致数据库修改的事情,例如执行ad-hoc SQL语句(任何类型)或执行存储过程。

答案 3 :(得分:1)

一个关键的区别是UDF总是具有固定模式的输出,存储过程可以以任意格式产生任意数量的结果集。

答案 4 :(得分:0)

Sprocs用于将输出返回给应用程序。 UDF返回表变量。