SQL Server 7.0 入门(五)[MSSQL防范]
本文“SQL Server 7.0 入门(五)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
利用sql server开辟利用程序
编写存储历程与触发器
存储历程和触发器是由用户成立的、驻留在服务器的一组Transact SQL查询语句.触发器是系统在特定条件下履行的.存储历程可以改进利用程序的性能.当客户程序需求拜候数据时,普通要经过5个步骤才能拜候到数据:
1) 查询语句被发送到服务器.
2) 服务器编译SQL代码.
3) 优化产生查询的履行筹划.
4) 数据引擎履行查询.
5) 后果发回客户程序.
存储历程是在成立时编译的,当存储历程第一次履行时,SQL Server产生查询履行筹划并将其存储进来,以利于将来利用.当通过存储历程发出一个恳求时,上述的第2和第3步就没有了,这能大大改进系统的性能.即便在第1步上也能提高性能.因为此时发送到服务器的语句只是一条存储历程的EXECUTE语句,而不是宏大的、复杂的查询.这种特点能降低网络的流量.
除了性能方面的改进外,存储历程还供应了便利地集合保护利用程序的功效.假如将查询嵌入到利用程序中.而又需求对查询举行改变,则利用程序需求重新编译,并重新公布到全部的客户端.而在存储历程中,改正对用户而言是透明的,它只需求在服务器上重新编译存储历程.
存储历程还能供应安全机制,固然用户大概无权履行存储历程中的号令,但它却大概有权履行存储历程本身.有时刻,系统管理员不会给用户以数据改正(UPDATE、INSERT和DELETE)的权利.成立的存储历程却能举行这些操作.当然用户需求拥有履行该存储历程的权利.
成立存储历程
存储历程可以到达以下目的:
· 带参数.
· 返回状况值.
· 调用别的存储历程.
· 在远程服务器上履行.
存储历程在"sysobjects"系统表中有一个表项,其范例为"P".存储历程的文本存储在"syscomments"系统表中.成立存储历程需求利用Transact SQL号令CREATE PROCEDURE.
比方:
USE pubs
GO
CREATE PROCEDURE ap_GetAuthorsForPublisher
AS
SELECT a.au_lname,a.au_fname
FROM authors a, titleauthor ta, titles t, publishers p
WHERE a.au_id = ta.Au_id
AND ta.Title_id = t.title_id
AND t.pub_id = p.pub_id
AND p.pub_name = ’New Moon Books’
GO
CREATE PROCEDURE语句的语法以下:
CREATE PROC[DURE] procedure_name [;number]
[@parameter_name ][OUTPUT] [,_n] ]
[WITH {RECOMPILE | ENCRYPTION}]
[FOR REPLICATION]
AS
Number是用来对相同名字的历程举行分组的整数.分组是将全部的历程通过drop procedure语句组合到一个分组中.
@parameter_name指定参数的名称.
RECOMPILE表示每次履行历程时都要举行编译.
ENCRYPTION表示历程的文本在"syscomments"表中要加密.
FOR REPLICATION表示历程不能在提交服务器上履行.
将参数传送给存储历程
存储历程可以承受参数.
注意:历程的参数也可以是用户定义的数据范例.
给参数一个缺省值
用户还可认为存储历程中的参数定义缺省值.当在履行时没有供应所需的参数时,系统就利用缺省值作为参数.假如既没有定义缺省值,又没有在履行时供应参数,则SQL Server就会返回一个错误.在存储历程中定义缺省值,并利用一些逻辑检测能否指定了参数从而采纳呼应的行动,这是一种很好的习惯.
比方:
USE pubs
GO
CREATE PROCEDURE ap_GetAuthorsForPublisher
@PublisherName varchar(40) = ‘New Moon Books’
AS
SELECT a.au_lname,a.au_fname
FROM authors a, titleauthor ta, titles t, publishers p
WHERE a.au_id = ta.Au_id
AND ta.Title_id = t.title_id
AND t.pub_id = p.pub_id
AND p.pub_name = @PublisherName
GO
以上是“SQL Server 7.0 入门(五)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |