在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

SQL Server数据库中的存储过程是怎么样的

121次阅读
没有评论

共计 2459 个字符,预计需要花费 7 分钟才能阅读完成。

SQL Server 数据库中的存储过程是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

什么是存储过程

如果你接触过其他的编程语言,那么就好理解了,存储过程就像是方法一样。

竟然他是方法那么他就有类似的方法名,方法要传递的变量和返回结果,所以存储过程有存储过程名有存储过程参数也有返回值。

存储过程的优点:

存储过程的能力大大增强了 SQL 语言的功能和灵活性。

可保证数据的安全性和完整性。

2. 通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。

3. 通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。

4. 在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程

5. 可极大地改善 SQL 语句的性能。

6. 可以降低网络的通信量。

7. 使体现企业规则的运算程序放入数据库服务器中,以便集中控制。

存储过程可以分为系统存储过程、扩展存储过程和用户自定义的存储过程

系统存储过程

我们先来看一下系统存储过程,系统存储过程由系统定义,主要存放在 MASTER 数据库中,名称以 SP 开头或以 XP 开头。尽管这些系统存储过程在 MASTER 数据库中,

但我们在其他数据库还是可以调用系统存储过程。有一些系统存储过程会在创建新的数据库的时候被自动创建在当前数据库中。

常用系统存储过程有:

代码如下: 

exec sp_databases; – 查看数据库

exec sp_tables; – 查看表

exec sp_columns student;– 查看列

exec sp_helpIndex student;– 查看索引

exec sp_helpConstraint student;– 约束

exec sp_helptext sp_stored_procedures – 查看存储过程创建定义的语句

exec sp_stored_procedures;exec sp_rename student, stuInfo;– 更改表名

exec sp_renamedb myTempDB, myDB;– 更改数据库名称

exec sp_defaultdb master , myDB – 更改登录名的默认数据库

exec sp_helpdb;– 数据库帮助,

exec sp_helpdb master;– 查询数据库信息

exec sp_attach_db – 附加数据库

exec sp_detach_db – 分离数据库

存储过程语法:

在创建一个存储过程前,先来说一下存储过程的命名,看到好几篇讲存储过程的文章都喜欢在创建存储过程的时候加一个前缀,养成在存储过程名前加前缀的习惯很重要,虽然这只是一件很小的事情,但是往往小细节决定大成败。看到有的人喜欢这样加前缀,例如 proc_名字。也看到这加样前缀 usp_名字。前一种 proc 是 procedure 的简写,后一种 sup 意思是 user procedure。我比较喜欢第一种,那么下面所有的存储过程名都以第一种来写。至于名字的写法采用骆驼命名法。

创建存储过程的语法如下:

  代码如下: 

CREATE PROC[EDURE] 存储过程名

@参数 1 [数据类型]=[默认值] [OUTPUT]

@参数 2 [数据类型]=[默认值] [OUTPUT]

AS

SQL 语句

EXEC 过程名 [参数]

使用存储过程实例:

1. 不带参数

代码如下: 

create procedure proc_select_officeinfo–(存储过程名)as select Id,Name from Office_Info–(sql 语句)

exec proc_select_officeinfo–(调用存储过程)

2. 带输入参数

代码如下:

 create procedure procedure_proc_GetoffinfoById –(存储过程名)@Id int–(参数名 参数类型)as select Name from dbo.Office_Info where Id=@Id–(sql 语句)

exec procedure_proc_GetoffinfoById 2–(存储过程名称之后, 空格加上参数, 多个参数中间以逗号分隔)

注: 参数赋值是, 第一个参数可以不写参数名称, 后面传入参数, 需要明确传入的是哪个参数名称

3. 带输入输出参数

  代码如下: 

create procedure proc_office_info–(存储过程名)@Id int,@Name varchar(20) output–(参数名 参数类型) 传出参数要加上 outputas beginselect @Name=Name from dbo.Office_Info where Id=@Id –(sql 语句)enddeclare @houseName varchar(20) – 声明一个变量, 获取存储过程传出来的值 exec proc_office_info–(存储过程名)4,@houseName output–(传说参数要加 output 这边如果用 @变量 = OUTPUT 会报错,所以换一种写法)select @houseName–(显示值)

4. 带返回值

代码如下: 

create procedure proc_office_info–(存储过程名)@Id int–(参数名 参数类型)as beginif(select Name from dbo.Office_Info where Id=@Id)=null –(sql 语句)beginreturn -1endelsebeginreturn 1endend

declare @house varchar(20) – 声明一个变量, 获取存储过程传出来的值 exec @house=proc_office_info 2 –(调用存储过程, 用变量接收返回值)– 注:带返回值的存储过程只能为 int 类型的返回值 print @house

看完上述内容,你们掌握 SQL Server 数据库中的存储过程是怎么样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计2459字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 极品少妇被啪到呻吟喷水 | 亚洲美女视频在线 | 男人的嘴添女人视频免费 | 欧洲久久 | 亚洲av无码国产精品色软件下戴 | 国产亚洲欧美在线中文无广告 | 国产精品对白刺激久久久 | www.91久久| 久久综合热 | 一级毛片视频在线观看 | 国产激情在线观看 | 亚洲av永久无码嘿嘿嘿 | 九九色影院 | 久久99精品久久久久子伦 | 亚洲国产精品爱久久久久电影网站 | 无码日韩精品一区二区三区免费 | 香蕉久久高清国产精品免费 | 亚洲精品久久一区毛片 | 国产精品人妻在线观看 | 亚洲 欧美 精品 中文第三 | 亚洲av最新在线网址 | 99精品国产免费久久国语 | 最新香蕉97超级碰碰碰碰碰久 | 免费人成网站视频在线观看国内 | 少妇久久久久久被弄到高潮 | 日韩一区二区在线观看 | 69一级毛片 | 欧美老熟妇牲交 | 久久伊人一区二区三区四区 | 成人免费无遮挡无码黄漫视频 | 日本丰满少妇裸体自慰 | 亚洲国产av无码综合原创国产 | 九九香蕉视频 | 国产精品综合一区二区三区 | 欧美在线观看视频 | 亚洲精品成人无码中文毛片不卡 | 欧美一区二区三区性视频 | 香蕉成人在线 | 日本一级毛片毛片一级毛片 | 亚洲欧美日韩高清综合678 | 国产xxxxxx久色视频在 |