2024年5月8日发(作者:)
触发器、存储过程和函数三者有何区别 四
什么时候用存储过程?存储过程就是程序,它是经过语法检查和编
译的SQL语句,所以运行特别快。
触发器是特殊的存储过程,存储过程需要程序调用,而触发器会自动执行;你所说的
函数是自定义函数吧,函数是根据输入产生输出,自定义只不过输入输出的关系由用户来
定义。在什么时候用触发器?要求系统根据某些操作自动完成相关任务,比如,根据买掉
的产品的输入数量自动扣除该产品的库存量。什么时候用存储过程?存储过程就是程序,
它是经过语法检查和编译的SQL语句,所以运行特别快。
存储过程和用户自定义函数具体的区别
先看定义:
存储过程
存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得
多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个
单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声
明变量、有条件执行以及其它强大的编程功能。
存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、
返回单个或多个结果集以及返回值。
可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点:
· 可以在单个存储过程中执行一系列 SQL 语句。
· 可以从自己的存储过程内引用其它存储过程,这
可以简化一系列复杂语句。
· 存储过程在创建时即在服务器上进行编译,所以
执行起来比单个 SQL 语句快。
用户定义函数
函数是由一个或多个 Transact-SQL 语句组成的子程序,可用于封装代码以便重新使
用。Microsoft? SQL Server? 2000 并不将用户限制在定义为 Transact-SQL 语言一部分
的内置函数上,而是允许用户创建自己的用户定义函数。
可使用 CREATE FUNCTION 语句创建、使用 ALTER FUNCTION 语句修改、以及使
用 DROP FUNCTION 语句除去用户定义函数。每个完全合法的用户定义函数名
(database__on_name) 必须唯一。
必须被授予 CREATE FUNCTION 权限才能创建、修改或除去用户定义函数。不是所
有者的用户在 Transact-SQL 语句中使用某个函数之前,必须先给此用户授予该函数的适
当权限。若要创建或更改在 CHECK 约束、DEFAULT 子句或计算列定义中引用用户定义
发布者:admin,转转请注明出处:http://www.yc00.com/news/1715183092a2578760.html
评论列表(0条)