MS SQL存储过程
定义:
将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。
讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊?
Microsoft公司为什么还要添加这个技术呢?
那么存储过程与一般的SQL语句有什么区别呢?
存储过程的优点:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权
存储过程的种类:
1.系统存储过程:以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作,
如 sp_help就是取得指定对象的相关信息
2.扩展存储过程 以XP_开头,用来调用操作系统提供的功能
exec master..xp_cmdshell 'ping 10.8.16.1'
3.用户自定义的存储过程,这是我们所指的存储过程
常用格式
Create procedure procedue_name
[@parameter data_type][output]
[with]{recompile|encryption}
as
sql_statement
解释:
output:表示此参数是可传回的
with {recompile|encryption}
recompile:表示每次执行此存储过程时都重新编译一次
encryption:所创建的存储过程的内容会被加密
如:
表book的内容如下
编号 书名 价格
001 C语言入门 $30
002 PowerBuilder报表开发 $52
实例1:查询表Book的内容的存储过程
create proc query_book
as
select * from book
go
exec query_book
实例2:加入一笔记录到表book,并查询此表中所有书籍的总金额
Create proc insert_book
@param1 char(10),@param2 varchar(20),@param3 money,@param4 money output
with encryption ---------加密
as
insert book(编号,书名,价格) Values(@param1,@param2,@param3)
select @param4=sum(价格) from book
go
执行例子:
declare @total_price money
exec insert_book '003','Delphi 控件开发指南',$100,@total_price
print '总金额为'+convert(varchar,@total_price)
go
存储过程的3种传回值:
1.以Return传回整数
2.以output格式传回参数
3.Recordset
传回值的区别:
output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中
实例3:设有两个表为Product,Order,其表内容如下:
Product
产品编号 产品名称 客户订数
001 钢笔 30
002 毛笔 50
003 铅笔 100
Order
产品编号 客户名 客户订金
001 南山区 $30
002 罗湖区 $50
003 宝安区 $4
请实现按编号为连接条件,将两个表连接成一个临时表,该表只含编号.产品名.客户名.订金.总金额,
总金额=订金*订数,临时表放在存储过程中
代码如下:
Create proc temp_sale
as
select a.产品编号,a.产品名称,b.客户名,b.客户订金,a.客户订数* b.客户订金 as总金额
into #temptable from Product a inner join Order b on a.产品编号=b.产品编号
if @@error=0
print 'Good'
else
print 'Fail'
go
分享到:
相关推荐
根据提供的信息,我们可以深入探讨如何在MS SQL Server中解密加密的存储过程、触发器、函数和视图等内容。此过程涉及使用自定义脚本,通过解析加密对象并逐步重建其原始定义,来实现解密的目标。 ### MS SQL 存储...
在Java编程中,调用Microsoft SQL Server(MS SQL)的存储...这就是Java调用MS SQL存储过程的基本步骤。确保遵循最佳实践,如使用连接池管理数据库连接,以及在生产环境中处理异常和错误,以提高程序的稳定性和性能。
SQL存储过程是数据库管理系统中预编译的SQL语句集合,它可以封装复杂的业务逻辑,提高数据处理效率,降低网络通信量,增强系统的安全性。在MS-SQL环境中,存储过程的编写和管理是一项重要的任务。而“MS-SQL标准存储...
MS-SQL存储过程格式化工具是一款专为Microsoft SQL Server数据库设计的应用程序,旨在帮助数据库管理员和开发人员优化和规范化他们的SQL脚本,尤其是存储过程的编写格式。此工具的主要功能是将杂乱无章的SQL代码自动...
本文档“万能破解SQL存储过程加密”提供了解密SQL Server 2000中的加密存储过程的方法,这将帮助那些曾经为此困扰或寻找付费解决方案的人。 SQL Server 2000的加密是通过透明数据加密(TDE)和对象级别的加密来实现...
综上所述,MS SQL Server的数据库备份和恢复存储过程是通过动态SQL和系统存储过程`sp_executesql`以及`xp_cmdshell`来实现的。它们提供了灵活的方式来自动化数据库的备份和恢复任务,确保在数据丢失或系统故障时能够...
在SQL Server 2005和2008...综上所述,在SQL Server 2005/2008中,通过对称加密和存储过程加密等方法,可以有效地提高数据库的安全性。这些技术的应用不仅限于简单的数据保护,还广泛应用于各种复杂的业务场景之中。
很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术,很好的通过存储过程实现分页的技术
总之,MS SQL Server 7的系统存储过程是数据库管理和维护的重要工具,它们为数据库管理员提供了便捷的接口,大大简化了常见的数据库管理任务,提高了工作效率。熟悉并熟练运用这些存储过程,对于提升数据库的性能和...
### 在MS SQL Server 2000中创建和调用存储过程 #### 一、概述 存储过程是在数据库中预编译并存储的一组SQL语句,可以接受输入参数、返回输出参数、返回多行结果集或返回一个整数值。在MS SQL Server 2000中创建和...
基于MS SQL Server的存储过程的研究与应用 本文主要研究了基于MS SQL Server的存储过程的概念、用途、优点和应用,旨在帮助开发人员更好地理解和使用存储过程。 1. 存储过程的概念 存储过程是由SQL语句和流控制...
本篇将深入探讨SQL Server 2005中的存储过程、游标以及游标嵌套的综合应用。 存储过程(Stored Procedure)是预编译的SQL语句集合,它们封装了特定的功能,可以多次调用,提高了代码的复用性和执行效率。在SQL ...
根据提供的文件信息,本文将详细解释SQL Server 2005和SQL Server 2008存储过程解密的方法,并探讨Direct Admin Connection (DAC) 的使用及其与存储过程解密的关系。 ### SQL Server 2005 和 2008 存储过程解密方法...
MS SQL 插件,格式化MS SQL 存储过程
SQL Server系统存储过程是数据库管理系统中的一个重要组成部分,它们是一系列预定义的、内部实现的Transact-SQL脚本,用于执行特定的数据库管理任务。这些过程通常用于简化和自动化常见的数据库操作,提高效率并确保...
PostgreSQL 与 MS SQLServer 在过程语言中的差异 PostgreSQL 和 MS SQL Server 是两种流行的关系数据库管理系统,它们在过程语言中有许多差异。下面我们将从数据类型、变量定义与赋值、IF/ELSE 控制结构等方面对这...
"监控MS SQL的Job运行状况的存储过程"提供了一种强大的解决方案,它可以帮助DBA更有效地跟踪和分析SQL Server Agent Jobs的执行状态。这个工具包含了详细的文档和源代码,非常适合SQL Server使用者学习和应用。 ...
### SQL Server 常用存储过程详解 #### 一、分页存储过程 GetRecordSet 在 SQL Server 中,实现分页功能是常见的需求之一。下面详细介绍一个常用的分页存储过程 `GetRecordSet`。 **存储过程定义:** ```sql ...
本文主要探讨了在Delphi开发环境与MS SQL Server数据库环境下,如何应用带事务的存储过程进行高效开发分布式数据库程序。以下是文章中提到的关键知识点,将详细阐述Delphi和MS SQL Server中存储过程的设计与使用方法...