- 浏览: 1647849 次
- 性别:
- 来自: 福州
文章分类
- 全部博客 (583)
- strust2.0 (14)
- hibernate2.0 (5)
- java (13)
- javaScript (59)
- AJAX (8)
- TFS (6)
- 其它 (20)
- CSS (23)
- asp (18)
- Dojo (5)
- 项目管理 (3)
- SQLServer (25)
- oracle (26)
- .NET (221)
- 开源系统 (6)
- 常识 (41)
- 软件架构 (1)
- My SQL (1)
- SilverLight (10)
- Flex (1)
- window7 (1)
- 网络安全 (2)
- CMS (1)
- ECShop (4)
- 邮件系统 (9)
- Linq (0)
- 淘宝店铺经营宝典 (0)
- flash插件 (1)
- Hubble.net全文检索 (1)
- 在线编辑器 (1)
- 正则表达式 (1)
- 创业 (1)
- asp.net mvc (1)
- 全文检索 (0)
- 全文检索 HubbleDotNet (1)
- Android (27)
- TFS bin (1)
最新评论
-
z小小Jean:
有具体的解决方法吗
用命名imp导入DMP时报无法解析指定的连接标识符的解决办法 -
njoiop:
这些都是常用接口,IP地址、手机归属和身份证查询接口,基站定位 ...
IP地址、手机归属和身份证查询接口 -
Fs_sky:
那导出DMP如何包含序列等其他东西?
在plsql中如何导出dmp文件 -
qiywtc:
请问该怎么判断视频的格式再选择对应的播放格式来播放啊?
asp.net各种类型视频播放代码(全) -
xinghenhouzi:
楼主说的版本不同无法导入导出是什么意思?我用10g的exp.e ...
在plsql中如何导出dmp文件
什么是存储过程呢?
定义:
将常用的或很复杂的工作,预先用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
-
资料引用:http://www.knowsky.com/2951.html
定义:
将常用的或很复杂的工作,预先用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
-
资料引用:http://www.knowsky.com/2951.html
发表评论
-
MSSQ客户端连接服务器端的注意事项
2010-05-06 14:00 13561、MSSQL2008能连接MSSQL2000、MSSQL20 ... -
SQL Server中,varchar和nvarchar如何选择
2010-02-03 15:29 1812引用 varchar(n) 长度为 n ... -
SQL分页语句
2009-12-28 16:38 1258有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。 ... -
同一字段根据不同条件更新的sql语句的写法
2009-12-22 11:34 4132update test set 字段1=case wh ... -
安装SQL2000时出现 ntvdm遇到一个硬错误的处理办法
2009-12-21 09:04 3244不要去运行AUTORUN.EXE 运行这个就会提示:“NTVD ... -
decimal和float类型的区别
2009-12-19 11:11 2557decimal 类型可以精确地表示非常大或非常精确的小数。大至 ... -
如何控制数据库中的用户,只能看到某个库?
2009-11-25 20:55 1351可以通过设置该帐户的用户映射。注意:虽然在客户端可以看到服务器 ... -
MS SQL Server 数据库命名规范
2009-11-17 15:30 1901设计原则 符号三大范式(每一列表达一个意思,每一行代表一个实 ... -
sql 根据某一字段查询不重复记录,同时要查询出所有满足条件的字段信息
2009-10-15 18:09 2515引用 比如有一张表A:有字段ID,Name,Time,Pass ... -
查看mssql的版本信息SQL语句
2009-10-08 11:42 1445SELECT SERVERPROPERTY('produ ... -
聚集索引和非聚集索引的区别
2009-09-06 16:38 1952聚集索引和非聚集索引的区别 收藏 聚集索引和非聚集索引的 ... -
修改了操作系统管理员的密码,数据库会连不上,应该怎么解决
2009-08-24 18:03 1304一台安装了Windows 2000 操作系统和SQL Serv ... -
分页SQL语句
2009-07-16 09:44 1316一、 select top 每页显示的记录数 * from ... -
Sql server中的Text数据类型
2009-04-23 11:37 4187在什么情况下应用这个类型 引用 超过 8KB 的ASC ... -
UNION 和UNION ALL 的区别
2009-04-22 14:42 1234在数据库中,UNION和UNION ALL关键字都是将两个结果 ... -
第一次写动态SQL的得到的经验
2009-04-21 16:29 1700前言 引用 用动态SQL写存储过程的原因,项目中有个存储过程必 ... -
SQL事务回滚的问题及其解决的方法
2009-04-20 11:42 8199Begin Transaction:开始一个事务; Commi ... -
sql server 存储过程
2009-04-18 14:11 1384CREATE PROCEDURE testPro AS ... -
修改数据库的文件名和逻辑名
2009-03-03 09:18 38161、修改数据库的逻辑名,可以在sql server的客户端操作 ... -
SQL存储过程概述
2009-02-16 15:11 1491SQL存储过程概述 在 大型数据库系统中,存储过程和触发器具 ...
相关推荐
存储过程入门与提高 什么是存储过程呢? 定义: 将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可...
存储过程的引入是为了提高数据库的性能、简化复杂的操作和增强安全性。 首先,存储过程的优势在于它们只在首次创建时编译,后续的执行无需再次编译,这显著提高了数据库的运行效率。相比于每次执行都要编译的普通...
存储过程的使用极大地提高了数据库的性能、安全性和可维护性。以下是对存储过程的详细介绍: 1. **存储过程的概念** 存储过程是由一组SQL语句、控制流程语句和参数组成的程序,存储在数据库服务器中。用户可以通过...
在这个“MySQL存储过程入门到精通”资料中,你将深入理解存储过程的原理、创建、调用以及优化方法。 一、存储过程的基本概念 存储过程是由一系列SQL语句组成的程序,存储在数据库服务器上,可以被多次调用执行,...
### 存储过程入门到精通 #### 一、存储过程概览 存储过程是一种预先编写的SQL代码集合,用于执行数据库中的特定任务。它能够提高应用程序的性能、简化复杂的数据库操作,并增强系统的安全性。 **核心特点:** - *...
【存储过程概述】 存储过程是数据库管理系统中的一种重要特性,它是预先编译好的SQL语句集合,用于执行特定任务。存储过程可以理解为数据库中的...在实际开发中,合理使用存储过程可以大大提高数据库系统的整体效能。
在本“DB2存储过程入门实例”文档中,我们将深入探讨DB2存储过程的基础知识,包括其定义、创建、调用以及优化等方面。 一、存储过程的概念 存储过程是由一组预编译的SQL语句组成的程序,存储在数据库服务器上,可由...
### MySQL存储过程入门学习 #### 一、存储过程概述 **存储过程**(Stored Procedure)是一种在数据库中存储的预先编写并编译好的SQL程序或函数集合。存储过程的主要优势在于可以提高应用程序的性能和响应速度,同时...
DB2数据库存储过程是数据库管理员和开发者用于封装SQL语句和控制流逻辑的数据库对象。它们提供了一种高效、安全的方式来执行复杂的数据库操作,并且可以重复使用,提高代码的复用性和可维护性。以下是对DB2存储过程...
"SQL存储过程入门级教程" SQL存储过程是数据库系统中的一种重要组件,它可以帮助开发者和DBA更好地管理和维护数据库。下面将详细介绍SQL存储过程的概念、优点、创建方法和应用场景等方面的知识点。 SQL存储过程...
### SQL存储过程入门教程 #### 一、SQL存储过程概述 在现代数据库系统中,**存储过程** 和 **触发器** 是两个非常重要的概念。它们本质上都是 SQL 语句和流程控制语句的集合,其中触发器实际上也可以视为一种特殊...
### SQL Server 存储过程入门案例详解 #### 一、引言 在现代数据库管理系统(DBMS)中,存储过程是一种强大的工具,它允许开发者在数据库服务器上编写可重用的代码块。这些代码块主要由T-SQL语句组成,并能够接受...
在数据库管理领域,存储过程是不可或缺的一部分,它是一种预编译的SQL语句集合,能够提高数据处理的效率,减少网络传输,同时还能提供安全性和模块化的编程方式。本资源"存储过程从入门到熟练(多个存储过程完整实例...
通过将商业规则和业务逻辑存储在数据库中,存储过程可以被多个应用程序多次调用,这不仅可以减少数据库网络流量,提高性能,还能将数据操作封装起来,提供安全性。 ### 存储过程基础知识 在Oracle中,商业规则和...
同时,Oracle还提供了PL/SQL,一种强大的过程化编程语言,用于创建存储过程、函数、触发器等,以增强数据库的功能和性能。 四、表和索引 了解如何创建、修改和删除表,以及如何设计合理的数据库模式,是Oracle 10g...
存储过程提高了代码的重用性和效率,减少了网络流量,因为它们只需要发送调用存储过程的命令,而不是一系列单独的SQL语句。 **创建存储过程** 创建存储过程的基本语法是`CREATE PROCEDURE`,后面跟存储过程的名称和...
存储过程是数据库管理系统中预编译的SQL语句集合,它是数据库中的一个对象,用于封装一组复杂的数据库操作,可以提高数据处理效率,增强安全性,并提供重用性。本篇文章将深入探讨存储过程的基础知识,包括其定义、...
Oracle存储过程的学习经典入门涉及多个核心概念和技术,包括性能调优、数据库分区、分表、读写分离以及主从模式等。以下是对这些知识点的详细说明: 1. **Oracle存储过程**: - 存储过程是一组预先编译的SQL语句和...