看完本文章你应该可以(本文目的):
▲创建、修改、删除存储过程。
▲理解存储过程类型及编写。
▲掌握ASP调用SQL存储过程。
▲了解SQL语句的优化。
在说存储过程前,我们先来了解下存储过程的优点或为什么要用存储过程:
一、存储过程的优点
1、SQL语句已经预编绎过了,因此执行效率、性能大大增加。
2、可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因。
3、减少网络流量。如:执行插入记录这个功能时只要传输存储过程名、参数和这些参数的数值即可。免去写一大串操纵的SQL语句。
我们将会发现要是网络速度慢时这个是多么的有用,即减少对客户机的压力,又可以简化一系列复杂语句。
4、减少注入式攻击。存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。
5、存储过程可以在单个存储过程中执行一系列SQL语句,存储过程内还可以嵌套其它存储过程。
6、有利于SQL语句的重用。
二、准备工作:
运行环境:为了实现本文的例子必须安装SQL Server 2000/2005和IIS5.0以上。建议再安装下Dreamweaver 8软件,这个绝对是Web开发的利器!接下来就是:
了解基本的SQL语句并创建库和表为下面的操作做准备。
这里先说下,创建、修改和删除数据库、表和存储过程等等一般都有2种方法:
1在“企业管理器”里进行创建、修改和删除数据库、表和存储过程。这个对初学者来说也许比较直观易懂。
2在“查询分析器”里进行创建、修改和删除数据库、表和存储过程。作为开发人员来说用这个最方便不过了,同时多写写SQL语句记记练练语法以熟练操作。
本文全部用第2种方法在“查询分析器”里进行。好了,开始“劳动”了。。。。
依次是创建Johnny数据库--建testTable表---插入信息。
CREATE database johnny --创建数据库
go
USE johnny --使用数据库
go
CREATE TABLE testTable( --创建表
tID int identity(1,1), --创建字段,下同
tUserName varchar(50),
tTel varchar(30)
)
Go
CREATE TABLE testUser --再创建用户表
(
uID int primary key identity(1,1), --创建主键并设置递增1。
uName varchar(20) not null, --用户名,非空
uEmail varchar(50) not null, --用户名电子邮件,非空
uQQ int default 0 --用户QQ,默认0
)
go
/*先给用户表插入几条记录*/
insert into testUser(uName,uEmail,uQQ) values('johnny','chenzxmail@163.com',40623660)
insert into testUser(uName,uEmail,uQQ) values('张三','12345@163.com',123456)
insert into testUser(uName,uEmail,uQQ) values('李四','43435@163.com',4354534)
go
/*现在给testTable表插入记录*/
set nocount on --当 SET NOCOUNT 为 ON 时,存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
declare @i int --DECLARE 语句声明变量@i,并用 SET 或 SELECT 语句给其指派值。
set @i=1
while @i<=200000 --只要指定的条件为真,就重复执行语句。即插入200000的数据,数据的值随便你任意取,我这里也是随便插入做测试,呵呵发了1分14秒的时间。
begin
insert into testTable(tUserName,tTel) values(CAST(round(rand()*100000,0) AS varchar),CAST(round(rand()*100000,0) AS varchar)+CAST(CEILING(round(rand()*100000,0)/3) AS VARCHAR))
SELECT @i=@i+1
end
go
/*呵呵,这样准备工作就完成了。看看刚才插入的部分数据吧:*/
select * from testUser
go
SELECT TOP 50 * FROM testable
如图:
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |