当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-05-02 15:21:00  来源:本站整理

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防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • Windows 搭配 IIS7 PHP MySQL 环境
  • sqlserver索引的原理及索引成立的注意事项小结
  • SQL Join的一些总结(实例)
  • SQL的Join利用图解教程
  • SQL中JOIN和UNION辨别、用法及示例介绍
  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
  • mysql Out of memory (Needed 16777224 bytes)的错误办理
  • mysql提醒[Warning] Invalid (old?) table or database name问题的办理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • MySQL Order By语法介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .