码迷,mamicode.com
首页 > 其他好文 > 详细

存储过程

时间:2020-01-06 19:39:17      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:idt   sql 语句   roc   sql语句   creat   查看   cap   rop   输出   

存储过程(stored procedure)类似于C语言中的函数

用来执行管理任务或应用复杂的业务规则

存储过程可以带参数,也可以返回结果

视图封装的是select语句

存储过程封装的是tsql语句

 

常用的系统存储过程
系统存储过程 说明
sp_databases 列出服务器上的所有数据库
sp_helpdb 报告有关指定数据库或所有数据库的信息
sp_renamedb 更爱数据库的名称
sp_tables 返回当前环境下可查询的对象的列表
sp_columns 返回某个表的列的信息
sp_help 查看某个表的所有信息
sp_helpconstraint 查看某个表的约束
sp_helpindex 查看某个表的索引
sp_stored_procedures 列出当前环境中的所有存储过程
sp_password 添加或修改登陆账户的密码
sp_helptext 显示默认值、未加密的存储过程,用户定义的存储过程、触发器或视图的实际文本

调用存储过程

  execute sp_databases

  exec sp_databases

  sp_databases

 

常用的扩展存储过程:xp_cmdshell

调用语法:

exec xp_cmdshell dos命令, [no_output]

 1 --创建数据库blankDB,要求保存在d:\bank下
 2 use master
 3 go
 4 exec xp_cmdshell mkdir d:\band, no_output
 5 if exists(select * from sysdatabases
 6         where name=bankDB
 7     drop database bankDB
 8 go
 9 create database bankDB(
10 ...
11 )
12 go
13 exec xp_cmdshell dir d:\bank --查看文件

 

如何创建存储过程

定义存储过程的语法:

create proc[edure] 存储过程名
  @参数1 数据类型 = 默认值 output,
  ...,
  @参数n 数据类型 = 默认值 output
  as
  sql 语句
go

和C语言的函数一样,参数可选

参数分为输入参数、输出参数

输入参数允许有默认值

 

输入参数:用于向存储过程转入值,类似C语言的按值传递;

输出参数:用于在调用存储过程后,返回结果,类似C语言的按引用传递。

 

带输出参数的存储过程:

如果希望调用存储过程后,返回一个或多个值,这时就需要使用输出(output)参数了

相当于c#语言中的ref/out引用传递

 

使用raiserror定义错误信息

raiserror(msg_id | msg_str, severity, state With option[,...n]])

一般我们只定义msg_str,severity,state就可以了

msg_id:在sysmessages系统表中指定用户定义错误信息

msg_str:用户定义的信息,最大255个字符

severity:定义错误级别,用户可使用的级别 0 - 18 级,一般16

state:表示错误的状态,1 - 127之间,一般1

option:指示是否将错误记录到服务器错误日志中

问题:

当用户调用存储过程时,传入的及格线参数不在 0 - 100 之间时,将弹出错误警告,终止存储过程的执行

 1 create proc proc_stu
 2     @notPassCount int output, --输出参数
 3     @writtenPass int = 60,   --默认参数
 4     @labPass int = 60
 5     AS
 6         if(not @writtenPass Between 0 and 100)
 7             or (not @labPass between 0 and 100)
 8         begin
 9             raiserror(及格线错误,请指定 0 - 100 之间的分数,统计中断推出。,16,1)
10             return  --立即终止
11         end
12     ...其他tsql语句,略
13 go

存储过程

标签:idt   sql 语句   roc   sql语句   creat   查看   cap   rop   输出   

原文地址:https://www.cnblogs.com/ftyl/p/12157839.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!