概述
在没有进行机房之前,就听到童鞋们讲在机房重构时,会用存储过程,用这个,用那个,自己想,用它们有什么用?能给我们带来方便吗?
一、什么是存储过程?
是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过制定存储过程的名字并给出参数来执行它。存储过程是数据库中的一个重要对象。
二、为什么要使用存储过程?
看优点
三、存储过程的优缺点
1.优点
(1).重复使用,可以减少数据库开发人员分工作量。
(2).减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
(3).安全性。参数化的存储过程可以防止SQL注入式攻击。
2.缺点
(1).调试麻烦。
(2).移植问题。
(3).重新编译问题。
(4).大量使用存储过程,难维护。
四、基本语法
Create Procedure sp_name //sp_name 创建存储过程的 名字 @[参数名][类型],@[参数名][类型] as begin ...... end
以下我组合查询时,用到的一个存储过程
ALTER PROCEDURE [dbo].[GroupQuery] -- Add the parameters for the stored procedure here 在这里添加存储过程的参数 @field1 char(20), @field2 char(20), @field3 char(20), @Operator1 char(20), @Operator2 char(20), @Operator3 char(20), @Context1 char(20), @Context2 char(20), @Context3 char(20), @Relation1 char(20), @Relation2 char(20), @Getdbtable char(20) --得到具体的表 AS BEGIN declare @sql varchar(500) set @sql = 'select * from '+@Getdbtable+' where'+ char(32)+@field1 +@Operator1+char(39)+@Context1+char(39) if (@Relation1!= '') set @sql=@sql+char(32)+@Relation1+char(32)+@field2+char(32)+@Operator2+char(32)+char(39)+@Context2+char(39) if (@Relation2!= '') set @sql=@sql+char(32)+@Relation2+char(32)+@field3+char(32)+@Operator3+char(32)+char(39)+@Context3+char(39) exec(@sql) END
解释:
set @sql = 'select * from '+@Getdbtable+' where'+ char(32)+@field1 +@Operator1+char(39)+@Context1+char(39)
追问!
SQL中的set指的是什么?
追答!
指的是为变量赋值,同时也可以写成select。
追问!
@指的又是什么?
追答!
自定义变量,一般适用于存储过程和函数当中。
小结:实践出真理!说的再多,不如多动动我们的手指。
最后
以上就是怕孤单口红为你收集整理的【C# 机房重构】 存储过程的全部内容,希望文章能够帮你解决【C# 机房重构】 存储过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复