加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer Dev(1) - 存储过程和自定义函数的区别

发布时间:2020-12-12 15:47:56 所属栏目:MsSql教程 来源:网络整理
导读:? 1)存储过程,功能强大,可以执行包括修改表等一系列数据库操作,也可以创建为 SQL Server 启动时自动运行的存储过程。 自定义函数,用户定义函数不能用于执行一组修改全局数据库状态的操作。 2)存储过程,可以使用非确定函数。 自定义函数,不允许在用户

?

1)存储过程,功能强大,可以执行包括修改表等一系列数据库操作,也可以创建为 SQL Server 启动时自动运行的存储过程。

自定义函数,用户定义函数不能用于执行一组修改全局数据库状态的操作。

2)存储过程,可以使用非确定函数。

自定义函数,不允许在用户定义函数主体中内置非确定函数。

3)存储过程,主要是返回一个int状态结果,也可返回记录集。

自定义函数,可以返回表变量。

关于这个,很容易糊涂。存储过程,可以使用这样的形式来返回N多的结果:

[表1]

而这个结果,只能以两种形式被使用:insert into table_3(name,fid_fk) exec sp1; 或者 EXEC sp1.

?

不过,对于自定义函数,它必须指定定义为返回值为table类型的数据@t,并且在代码中显式的向该table @t中insert;或者,只是制定返回值为table类型,不指定return 的对象变量,直接return 该表。即:

[表2]

或者


[表3]

在这个方面,最能够看出存储过程和自定义函数的区别:前者是一系列功能的集合,可以返回int值,或者返回查询的结果集合,但是只是作为一系列功能的副产品;而后者,就是为了返回值而创建的。在【附录】中详细说明自定义函数的使用。

?

4)存储过程,其返回值不能被直接引用;而是必须被使用为exec sp1或者 insert into table 的形式使用。

自定义函数,其返回值可以被直接引用。

5)存储过程,用 EXECUTE 语句执行。

自定义函数,在查询语句中调用。

?

【附录】最后补充一下。

我ft,破csdn,整个格式都不会,不知道干嘛的。不过还是言归正传。

一般说来,自定义函数就有这三个用处:

1,如上[表2],返回一个in-line table value;

2,如上[表3],返回一个multi statement table value;

3,仅仅返回一个任意的变量,比如:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读