SQL Server数据库回顾之存储过程的创建和应用
2023-03-31 11:10:49 时间
存储过程(stored procedure)可以很方便地来修改sql语句,直接在服务器上修改,而不用再到程序中修改,然后再保存,存储过程可以一定程度的保证数据的安全性。
1.存储过程大大增强了sql语言的功能和灵活性,存储过程可以用流程控制语句编写,有很强的灵活性。
2.存储过程可以保证数据的安全性和完整性,通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。通过存储结构可以使相关的动作在一起发生,从而可以维护数据库的完整性。
3.运用存储过程能很快的执行,在运行存储过程前,数据库已经对其进行了语法和句法分析,并且给出了优化执行方案,这种已经编译好的过程可以极大地改善sql语句的性能,执行sql语句的大部分工作已经完成。
4.在一定程度上可以降低网络的通信量,如果是sql语句,必须要把sql语句传给服务器然后执行sql语句。
5.可以集中控制sql语句:比如说当一个公司的规则发生变化的时候,只要改变服务器上的存储过程就行,一般公司的规则经常变化,如果把体现规则的运算程序放入应用程序中,则当公司规则变化时,就需要修改应用程序工作量非常之大,还得修改、发行和安装应用程序。如果把规则放在存储过程中,则当企业规则发生变化的时候,只要修改存储过程就可以了,应用程序就无需变化。
- Create PROCEDURE [dbo].[news_selectNewNews]
- AS
- BEGIN
- select top10 n.id,n.title,n.createTime,c.[name],c.id as caId
- from news n
- inner join category c on n.caId=c.id
- order by n.createTime desc
- END
执行存储过程的时候,将数据库中建好的存储过程,交给界面层然后传给Dal层处理,只要设置commandtype=StoredProdure,这样数据库就可以处理存储过程了。
- Public DataTable test(string ProcName)
- {
- DataTable dt=new DataTable();
- Cmd=newSqlCommand(procName,GetConn());(打开连接,传入存储过程)
- cmd.CommandType=CommandType.StoredProcedure;(执行sql语句和存储过程的差别)
- using(sdr=cmd.ExecuteReader(CommandBehavior.CloseConnection))
- {
- Dt.load(sdr);
- }
- Returnsdr;
- }
关于存储过程的知识就介绍到这里,如果想了解更多SQL Server数据库的知识,这里的文章很精彩:http://database.51cto.com/sqlserver/,相信一定会带给您收获的。
【编辑推荐】
相关文章
- 六个SQL查询技巧,你知道几个?
- 快速评估图数据库何时使用:与关系型数据库简要对比,离图更进一步
- SQL Server 备份的备份类型探究
- 为什么阿里巴巴禁止数据库中做多表join?
- 关系型、非关系型数据库存储选型盘点大全
- Redis 的数据被删除,内存占用还这么大?
- MySQL 崩溃恢复过程分析
- 什么?MySQL 8.0 会同时修改两个ib_logfilesN 文件?
- 程序员应知应会之数据库设计的那些事儿
- 知识图谱与图数据库的关系,终于有人讲明白了
- 数据库中常见的六种约束,有一种MySql不支持,你知道是哪个吗?
- 8 月数据库排行榜:Oracle 分数仍在狂跌!
- MySQL基础架构:SQL查询语句执行过程
- 数据库分布式架构的落地策略与典型实践
- 还在手写SQL实现?试试这款IDEA插件吧!提示太全了,还能一键生成代码!
- Django 开发人员的 7 个数据库优化最佳实践
- 什么?MySQL的等值查询竟然出错了?
- 你不得不知道的四款 MySQL GUI 神器
- 使用Spring对Postgres实现可扩展写入
- 金融行业国产数据库选型五大难点分析