sqlserver,存储过程,规范_第1页
sqlserver,存储过程,规范_第2页
sqlserver,存储过程,规范_第3页
sqlserver,存储过程,规范_第4页
sqlserver,存储过程,规范_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

sqlserver,存储过程,规范篇一:SQL Server存储过程的命名标准SQL Server 存储过程的命名标准 以下的文章主要是介绍 SQL Server 存储过程命名标准的实际操作步骤。以及对存储过程的命名这个语法的具体描述,以下就是数据库的相关内容的具体介绍,希望你在浏览完此篇文章之后会有会所了解。 存储过程的命名有这个的语法: 1. 2. proc MainTableName By FieldName(optional) Action 1 2 3 4 1 所有的存储过程必须有前缀proc。所有的系统SQL Server 存储过程都有前缀“sp_“,推荐不使用这样的前缀因为会稍微的减慢。 2 表名就是存储过程访问的对象。 3 可选字段名就是条件子句。比如:procClientByCoNameSelect,procClientByClientIDSelect。 4 最后的行为动词就是存储过程要执行的任务。 如果存储过程返回一条记录那么后缀是:Select 如果存储过程插入数据那么后缀是:Insert 如果存储过程更新数据那么后缀是:Update 如果 SQL Server 存储过程有插入和更新那么后缀是:Save 如果存储过程删除数据那么后缀是:Delete 如果存储过程更新表中的数据 (ie. drop and create) 那么后缀是:Create 如果存储过程返回输出参数或 0,那么后缀是:Output 例子: 一个仅仅返回一个输出参数的 SQL Server 存储过程:1. 2. 3. 4. 5. 6. ALTER PROCEDURE procClientRateOutput pstrClientID VARCHAR(6) = CABLE,pstrCategoryID VARCHAR(6) = ,pstrEmpID VARCHAR(6)=AC,pdteDate datetime = 1996/1/1,curRate MONEY OUTPUTAS-Description: Get the $Rate for this client and this employee - and this category from Table ClientRateSET curRate = (SELECT TOP 1 Rate FROM ClientRate WHERE ClientID=pstrClientID AND EmpID=pstrEmpID AND CategoryID= 7.8. 9. 10. pstrCategoryIDAND DateEnd pdteDateORDER BY DateEnd)IF curRate IS NULLSET curRate =(SELECT TOP 1 Rate FROM ClientRate WHERE ClientID=pstrClientIDAND EmpID=pstrEmpID AND CategoryID= AND DateEnd pdteDate ORDER BY DateEnd)RETURN 以上的相关内容就是对 SQL Server 存储过程命名标准的介绍,望你能有所收获。 篇二:SQL Server 存储过程的命名标准SQL Server 存储过程的命名标准 在本文中,此示例标准蓝图的存储过程命名方法只适用于 SQL 内部,假如你正在创建一个新的存储过程,或是发现一个没有按照这个标准构造的存储过程,即可以参考使用这个标准。 注释:假如存储过程以 sp_ 为前缀开始命名那么会运行的稍微的缓慢,这是因为 SQL Server 将首先查找系统存储过程,所以我们决不推荐使用 sp_作为前缀。 (1) 所有的存储过程必须有前缀proc. 所有的系统存储过程都有前缀“sp_“, 推荐不使用这样的前缀因为会稍微的减慢。 (2) 表名就是存储过程访问的对象。 (3) (4) 最后的行为动词就是存储过程要执行的任务。如果存储过程返回一条记录那么后缀是:Select 如果存储过程插入数据那么后缀是:Insert 如果存储过程更新数据那么后缀是:Update 如果存储过程有插入和更新那么后缀是:Save 如果存储过程删除数据那么后缀是:Delete 如果存储过程更新表中的数据 (ie. drop and create) 那么后缀是:Create 如果存储过程返回输出参数或 0,那么后缀是:Output 例子: 篇三:sql server 存储过程详细代码(超赞!)use jxgl -首先判断有没有已经建立 up_getallstudents 存储过程,有则先删除 if exists (select name from sysobjects where name = up_getallstudents and type = p ) drop procedure up_getallstudents -编写存储过程 up_getallstudents,用于获取学生表students 的所有记录 create procedure up_getallstudents as select * from students -使用 execute 执行存储过程 up_getallstudents exec up_getallstudents -也可写成 execute up_getallstudents -编写一个存储过程 up_insertstudent,完成学生表students 数据的插入 -1、不带默认值的参数 create procedure up_insertstudent sid varchar(15), sname varchar(30), ssex char(10), sbirth datetime, sbirthplace varchar(300) as begin insert into students (stu_id, stu_name, stu_sex, stu_birth, stu_birthplace) values (sid, sname, ssex, sbirth, sbirthplace) end exec up_insertstudent XX12110111, 肖玉峰, 男, 1975-02-05, 山东省滕州市木石镇 -等同于 exec up_insertstudent sname = 肖玉峰, sid = XX12110111, ssex = 男 , sbirth = 1975-02-05, sbirthplace = 山东省滕州市木石镇 drop procedure up_insertstudent delete students where stu_name = 肖玉峰 insert into students(stu_id, stu_name, stu_sex, stu_birth,stu_birthplace) values(XX12110110, 马缪, 男, 1986-010-17 00:00:, 广东广州) -编写一个存储过程 up_delstudentbyname,根据输入的学生姓名,删除该学生记录 if object_id(up_delstudentbyname, p) is not null drop procedure up_delstudentbyname go create procedure up_delstudentbyname sname varchar(30) as begin -调用存储过程的代码如下: exec up_delstudentbyname 马缪 select * from students -编写一个存储过程 up_getstuinformationbyname,根据输入的学生姓名,显示该学生的学号、姓名、课程名和成绩 if object_id(up_getstuinformationbyname, p) is not null drop procedure up_getstuinformationbyname go create procedure up_getstuinformationbyname sname varchar(30) as begin select “S“.stu_id, stu_name, cour_name, score from students “S“, courses “C“, course_score “CS“ where “S“.stu_id = “CS“.stu_id and “CS“.cour_id = “C“.cour_id and stu_name = sname end -调用存储过程的代码如下: exec up_getstuinformationbyname 仇立权 -ok delete from students where stu_name = sname end -2、带默认值的参数 -编写一个存储过程 up_insertstuwithdefault,给参数定义默认值,完成学生表 students 数据的插入 drop procedure up_insertstuwithdefault go create procedure up_insertstuwithdefault sid varchar(15), sname varchar(30), ssex char(10) = 男, sbirth datetime, sbirthplace varchar(300) = , semail varchar(50) = as begin insert into students (stu_id, stu_name, stu_sex, stu_birth, stu_birthplace, stu_email) values (sid, sname, ssex, sbirth, sbirthplace, semail) end -调用存储过程的代码如下: exec up_insertstuwithdefault sid = 11, sname = 赵小乐, sbirth = 1976-07-05 select * from students -3、带输出参数 -在创建存储过程时,可以用关键字 OUTPUT 来创建一个输出参数,另外,调用时也必须给出 OUTPUT 关键字 -根据给定的学生姓名,获取该生的平均成绩 use jxgl go create procedure up_getAvgScorebyname aname varchar(30), avgscore int output as begin select avgscore = avg(score) from students “S“, course_score “CS“ where “S“.stu_id = “CS“.stu_id and “S“.stu_name = aname end -调用过程代码declare avgscore int -avgscore 可以改成任意变量名 exec up_getAvgScorebyname 仇立权, avgscore output-ok print avgscore -不能写成 print avgscore 或 print (avgscore) ,这是输出字符串 -等同于 select avg(score) from students s, course_score c where _id = _id and _name = 仇立权 -4、带返回值的存储过程 -()print 语句可以将用户定义的消息返回给客户端 -编写一个存储过程 up_insertstudent2,在插入学生数据前,先判断一下学号是否存在, -如果存在,输出“要插入的学生的学号已经存在” ;否则,插入学生数据,并返回”恭喜,数据插入成功“ create procedure up_insertstudent2 sid varchar(15), sname varchar (30), ssex char(10) = 男, sbirth datetime as begin if exists(select * from students where stu_id = sid) print (要插入的学生的学号已经存在) -也可写成 raiserror(要插入的学生的学号已经存在, 16, 1) else begin insert into students (stu_id, stu_name, stu_sex, stu_birth) values (sid, sname, ssex, sbirth) print(恭喜,数据插入成功) -raiserror(恭喜,数据插入成功, 16, 10) end end drop procedure up_insertstudent2 select * from students -调用过程代码如下: exec up_insertstudent2 sid = 13, sname = 张小飞, sbirth = 1983-02-01 -ok exec up_insertstudent2 sid = 10, sname = 张小龙, sbirth = 1988-01-08 -ok -()return 语句,return 语句可以从过程、批处理或语句块中退出,不执行其后继语句 create procedure up_delstudentbyname2 sname varchar(30) as begin delete from students where stu_name = sname return rowcount-行计数 end drop procedure up_delstudentbyname2 -调用存储过程的代码如下: declare ret_val int exec ret_val = up_delstudentbyname2 张小龙-ok select ret_val as “删除

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论