问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MS sql如何使用存储过程?

发布网友 发布时间:2022-04-21 19:25

我来回答

2个回答

热心网友 时间:2022-04-08 00:48

  一、存储过程的概念
  T-SQl和C语言一样 ,是一门结构化的语言。
  什么是存储过程?
  存储过程是SQL查询语句与控制流程语句的预编译集合,并以特定的名称保存在数据库中。存储过程也是数据库对象
  分类:
  系统存储过程: 以sp_或xp_打头
  用户自定义 :以proc_打头
  存储过程的优点:
  执行速度快 效率高
  模块式编程
  减少网络流量
  提高安全性
  二、系统存储过程
  SQl server 的系统存储过程保存在master数据库中,且所有命名的系统存储过程命名以“Sp_”开头。在master数据库中,
  系统存储过程数量如下:
  代码如下复制代码
  select count([name])as '系统存储数量' from sysobjects
  where [name] like 'sp_%'

  EXECUTE 用来表示调用存储过程,也可以缩写为EXEC,
  调用存储的语法如下:
  EXECUTE ‘存储过程名’ ‘参数’ ---如果没有参数则省略参数
  常用的系统存储过程
  EXEC sp_databases 列出当前系统中的数据库
  EXEC sp_renamedb 'Northwind','Northwind1' 修改数据库的名称(单用户访问)
  USE stuDB GO EXEC sp_tables 返回某个表列的信息
  EXEC sp_columns 查看指定列的信息
  EXEC sp_help 查看某个表的所有信息
  EXEC sp_helpconstraint '表名' 查看某个表的约束
  EXEC sp_helpdb '数据库名' 或 EXEC sp_helpdb 查看指定数据库或所有数据库信息
  EXEC sp_helptext '对象名称' 显示数据库对象(存储过程、触发器、试图)的定义文本
  EXEC sp_helpindex '表名' 查看指定表的索引信息
  EXEC sp_renamedb '原名称','新名称' 更改数据库名称
  EXEC sp_stored_proceres 列出当前环境可用的所有存储过程

  除了系统存储过程,SQL Server 还提供以Xp_开头的扩展存储过程,如可以调用DOS命名的,XP_cmdshell 存储过程
  用法如下:
  
  代码如下复制代码

  EXEC Xp_cmdshell DOS 命名 [NO_OUTPUT]
  

  NO_OUTPUT 为可选参数,表示是否输入存储过程返回的信息
  三、用户自定义存储过程
  1、语法
  代码如下复制代码
  create procere 存储过程名
  @参数1名 数据类型 [=默认值] [参数类型(输入/输出)]
  ... ...
  @参数n名 数据类型 [=默认值] [参数类型(输入/输出)]
  as
  begin
  sql语句
  end;
  go
  
  参数类型分为输入参数和输出参数,默认为输入参数,使用OUTPUT表示输出参数。创建存储过程最好以proc开头
  
  2、创建不带参数的存储过程
  
  代码如下复制代码
  --判断存储过程是否存在
  if object_id('proc_student','procere') is not null
  drop procere proc_student
  go
  create procere proc_student
  as
  begin
  select pcid as '电脑编号',
  case pcuse
  when 0 then '空闲'
  when 1 then '忙碌'
  end as '使用状态' from pc
  end;
  --调用存储过程
  execute proc_student select * from pc
  go
  
  3、创建带输入参数的存储过程
  语法:
  代码如下复制代码
  create procere 存储过程名
  @参数1名 数据类型 [=默认值]
  ....
  @参数2名 数据类型[=默认值]
  as
  SQl与语句
  ...
  go
  
  --例如
  --创建带输入参数的存储过程
  代码如下复制代码
  if object_id('proc_stu','procere') is not null
  drop procere proc_stu
  go
  create procere proc_stu
  @pcuse int
  as
  begin
  select pcid as '电脑编号',
  case pcuse
  when 0 then '空闲'
  when 1 then '忙碌'
  end as '使用状态' from pc where pcuse=@pcuse end;
  --调用存储过程
  execute proc_stu @pcuse=1
  
  4、创建带输出参数的存储过程
  代码如下复制代码
  --创建带输出参数的存储过程
  if OBJECT_ID('proc_s','procere') is not null
  drop procere proc_s
  go
  create procere proc_s
  @pcid int,
  @pcus int output
  as
  begin
  select @pcus=pcuse from pc where pcid=@pcid end;
  --调用存储过程
  declare @pcus int execute proc_s 5,@pcus output
  

  四、处理错误信息
  当存储过程的语句十分复杂时,可以在存储过程中加入错误语言。SQL Server中可以使用RAISERROR 返回用户自定义的错误信息。
  RAISERROR 语法如下:
  
  RAISERROR (自定义的错误信息,错误的严重级别,错误状态)
  
  自定义错误信息:表示输出信息:表示输出的错误提示文本
  错误的严重级别:表示用户自定义错误的严重性级别。(0-18极)
  错误的状态:表示自定义错误的状态,值的范围在1-127

热心网友 时间:2022-04-08 02:06

啥意思

exec test_sp 参数

是要这个?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
景德镇书香蔓城多少钱一平方? 银盛泰书香蔓城基本信息 景德镇书香蔓城是什么装修? 卫生间风水和健康的关系是什么? 卫生间窗户风水大忌 8种危害健康可怕浴室风水 易惹祸的八种卫生间格局,快来看看吧! 我最好朋友的婚礼 演员表 我最好朋友的婚礼职员表 浙大夏令营是干什么的 SQL的存储过程是什么 SQL Server的存储过程怎么写? 创建存储过程的sql语句 SQL 中存储过程怎么使用? sql 存储过程,返回数据集 并返回总行数 sql 创建存储过程的语法 sql存储过程是什么 SQL的存储过程 语法格式是什么? 蓝光的光驱是什么东东 看动漫的蓝光光盘 电脑装蓝光光驱和蓝光播放机有区... 蓝光光驱与普通光驱的区别是什么? 蓝光原盘和dvd光盘有什么区别 蓝光光驱的1X约等于普通DVD光驱的()? ps3的蓝光光驱和蓝光DVD有什么区别 蓝光刻录机与蓝光光驱有什么区别? DVD刻录光驱与蓝光光驱哪个好? 普通的DVD光驱能播放蓝光吗?还是要专门的蓝光光驱... HD--DVD和蓝光--DVD制式有什么区别? 蓝光光驱光,DVD刻录机DVD光驱是不是一样 光驱 CD,DVD,蓝光的区别 sql 存储过程是怎么实现的 简单的例子和解释! MySQL里面sql语句调用存储过程,该如何写? SQL存储过程如何调用存储过程? sql中的存储过程set是什么意思 sql 存储过程查询语句 梦见自己想收拾屋叠被子着,但是看到有老鼠,用棍... 晚上做梦梦见自己叠被子,还叠的很漂亮,事代表什... 梦见在地里看庄稼起来被子没叠叫老婆去叠叠被子是... 《阳光总在风雨后》600字作文,要使用插叙,并首尾... svn认证失败 SVN客户端提交文件到版本库出现认证失败问题 svn登录时用户名和密码正确,但是无法验证通过 svn提交报错怎么回事。很蛋疼!求速度高手给俺解决... SVN认真失败,直接跳过了账号登陆界面,不是所谓的... svn: 认证失败: 不能认证到服务器。怎么办? 我用客户端的电脑 连接 服务器的svn&nbs... svn更换地址后,提交代码时认证失败 重装系统后,svn客户端无法使用版本库浏览器,提醒... linux下配置完测试登录SVN 认证失败 svn e175013怎么解决