加入收藏 | 设为首页 | 会员中心 | 我要投稿 草根网_马鞍山站长网 (https://www.0555zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

SQL语句编写存储过程

发布时间:2022-10-05 15:36:30 所属栏目:教程 来源:
导读:  在SQLServer中,存储过程通常使用T-SQL语句编写。它可接收输入参数、返回表格或标量结果和消息,调用“数据定义语言(DDL)”和“数据操作语言(DML)”语句,然后返回输出参数。

  一
  在SQLServer中,存储过程通常使用T-SQL语句编写。它可接收输入参数、返回表格或标量结果和消息,调用“数据定义语言(DDL)”和“数据操作语言(DML)”语句,然后返回输出参数。
 
  一、存储过程的类型
 
  几分钟学会用T-SQL语句编写存储过程_SQLServer_T-SQL_数据库_课课家
 
  (1)系统存储过程:系统存储过程是由SQLServer提供的存储过程,可以作为命令执行。系统存储过程定义在系统数据库master中,其前缀是“sp_”.系统存储的过程中,管理员可以执行修改系统表的数据库管理任务,可以在任何一个数据库中执行。小编在这安利新手一个TIPS哦,很多复杂的工作也可以通过系统存储执行。
 
  (2)扩展存储过程:扩展存储过程是指在SQLServer环境之外,使用编程语言创建的外部程序形成的动态链接库(DDL)。使用时,现将DDL加载到SQLServer系统中,并且按照使用系统存储过程的方法执行。扩展存储过程在SQLServer实例地址空间中运行,但因为扩展存储过程不易撰写,而且可能会引发安全性问题,所以小编并不推荐这个存储类型。
 
  (3)用户存储过程:在SQLServer中,用户存储过程可以使用T-SQL语言编写,也可以使用CLR方式撰写。
 
  T-SQL语言存储过程:存储过程保存T-SQL语句集合,可以接收和返回用户提供的参数。存储过程中可以包含根据客户端应用程序提供信息,以及在一个或多个表中插入新行所需的语句。存储过程也可以从数据库向客户端应用程序返回数据。
 
  CLR存储过程:可接收和返回用户提供的参数,其是作为类的公共静态方法实现的。
 
  以上就是小编所整理的存储过程的类型,接下来说说存储过程的创建与执行。
 
  二、创建与执行:
 
  1、存储过程只能定义在
 
  Mssq存储过程_对象存储与块存储_分布式存储 集中式存储
 
  当前数据库中,使用T-SQL命令创建存储过程。
 
  创建存储过程的语句是CREATEPROCEDURE或CREATEPROC。
 
  Procedure_name:用于指定存储过程名,所在架构必须唯一。
 
  Number:为可选的整数,用于对同名的存储过程进行分组,以便使用一条DROPPROCEDURE语句就可删除一组存储过程。
 
  Data_type:用于指定形参的数据类型。
 
  Varying:指定作为输出参数支持的结果集。
 
  Default:指定存储过程输入参数的默认值,默认值必须是常量或NULL。
 
  Output:指示参数为输出参数Mssq存储过程,输出参数可以从存储过程返回信息。
 
  READONLY:指定不能在存储过程的主体中更新或修改参数。
 
  2、存储过程的执行
 
  Module_name:是要调用的存储过程或用户定义标量函数的完全限定或者不完全限定名称。
 
  DEFAULT:DEFAULT关键字表示不提供实参,而是使用对应的默认值。
 
  @variable:为局部变量,用于保存OUTPUT参数返回的值。
 
  @Module_name_var:局部定义的变量名,保存存储过程或用户定义函数的名称。
 
  @return_status:为可选的整型变量,保存存储过程的返回状态。
 
  三、修改并保留:
 
  使用ALTERPROCEDURE命令可修改已存在的存储过程并保留以前赋予的许可。用ALTERPROCEDURE更改后,存储过程的权限和启动属性保持不变。
 
  四、删除:
 
  当不再使用一个存储过程时,就要把它从数据库中删除。使用DROPPROCEDURE语句可永久地删除存储过程。在此之前必须确认该存储过程没有任何依赖关系。
 
  PROCEDURE是指要删除的存储过程或存储过程组的名称。
 
  小编结语:
 
  上面的内容就是小编尽自己最大努力所总结出的T-SQL语句编写存储过程的一个流程步骤和方法,SQLServer作为现在安全性较高,使用性容易而且使用范围较广的数据库操作软件,深受广大小伙伴们的喜爱,希望小编的上述总结对正在学习SQLServer的小伙伴们有所帮助!
 

(编辑:草根网_马鞍山站长网)

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