日期:2011-05-02 15:22:00 来源:本站整理
SQL Server数据库技术(90)[MSSQL防范]
本文“SQL Server数据库技术(90)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
??除了利用系统供应的函数外,用户还可以按照需求自定义函数.用户自定义函数(User Defined Functions)是sql server 2000 新增的数据库对象,是SQL Server 的一大改良.
????用户自定义函数不能用于履行一系列改变数据库状况的操作,但它可以像系统函数一样在查询或存储历程等的程序段中利用,也可以像存储历程一样通过EXECUTE 号令来履行.用户自定义函数中存储了一个Transact-SQL 例程,可以返回一定的值.
????在SQL Server 2000 中按照函数返回值情势的差别将用户自定义函数分为三种范例:
- 标量型函数(Scalar functions)
标量型函数返回一个肯定范例的标量值其返回值范例为除TEXT、 NTEXT、 IMAGE、CURSOR、 TIMESTAMP 和TABLE 范例外的别的数据范例.函数体语句定义在BEGIN-END语句内,此中包含了可以返回值的Transact-SQL 号令. - 内联表值型函数(Inline table-valued functions)
内联表值型函数以表的情势返回一个返回值,即它返回的是一个表内联表值型函数没有由BEGIN-END 语句括起来的函数体.其返回的表由一个位于RETURN 子句中的SELECT 号令段从数据库中挑选出来.内联表值型函数功效相当于一个参数化的视图. - 多声明表值型函数(Multi-statement table-valued functions)
多声明表值型函数可以看做标量型和内联表值型函数的结合体.它的返回值是一个表,但它和标量型函数一样有一个用BEGIN-END 语句括起来的函数体,返回值的表中的数据是由函数体中的语句插入的.由此可见,它可以举行多次查询,对数据举行多次挑选
与归并,补偿了内联表值型函数的不足.
13.13.1 成立用户自定义函数
SQL Server 2000 为三种范例的用户自定义函数供应了差别的号令成立格局.
(1) 成立标量型用户自定义函数(Scalar functions) 其语法以下:
各参数阐明以下:
- owner_name
指定用户自定义函数的全部者. - function_name
指定用户自定义函数的名称.database_name.owner_name.function_name 应是惟一的. - @parameter_name
定义一个或多个参数的名称.一个函数最多可以定义1024 个参数每个参数前用"@"标记标明.参数的作用范围是整个函数.参数只能替换常量,不能替换表名、列名或别的数据库对象的名称.用户自定义函数不支持输出参数. - scalar_parameter_data_type
指定标量型参数的数据范例,可认为除TEXT、 NTEXT、 IMAGE、 CURSOR、TIMESTAMP 和TABLE 范例外的别的数据范例. - scalar_return_data_type
指定标量型返回值的数据范例,可认为除TEXT、 NTEXT、 IMAGE、 CURSOR、TIMESTAMP 和TABLE 范例外的别的数据范例. - scalar_expression
指定标量型用户自定义函数返回的标量值表达式. - function_body
指定一系列的Transact-SQL 语句,它们决意了函数的返回值. - ENCRYPTION
加密选项.让SQL Server 对系统表中有关CREATE FUNCTION 的声明加密,以避免用户自定义函数作为SQL Server 复制的一部份被公布(Publish) . - SCHEMABINDING
筹划绑定选项将用户自定义函数绑定到它所引用的数据库对象假如指定了此选项,则函数所触及的数据库对象此后将不能被删除或改正,除非函数被删除或去掉此选项.应注意的是,要绑定的数据库对象必须与函数在同一数据库中.
其语法以下:
各参数阐明以下:
- TABLE
指定返回值为一个表. - select-stmt
单个SELECT 语句,肯定返回的表的数据.
别的参数与标量型用户自定义函数相同.
其语法以下:
各参数阐明以下:
- @return_variable
一个TABLE 范例的变量,用于存储和积累返回的表中的数据行. - 别的参数与标量型用户自定义函数相同.
在多声明表值型用户自定义函数的函数体中答应利用下列Transact-SQL 语句. - 赋值语句(Assignment statements);
- 流程掌握语句(Control-of-Flow statements);
- 定义作用范围在函数内的变量和游标的DECLARE 语句;
- SELECT 语句;
- 编辑函数中定义的表变量的INSERT、 UPDATE 和DELETE 语句;
- 在函数中答应触及诸如声明游标、翻开游标、关闭游标、释放游标这样的游标操作,关于读取游标而言,除非在FETCH 语句中利用INTO 从句来对某一变量赋值,不然不答应在函数中利用FETCH 语句来向客户端返回数据.
(4) 用Enterprise Manager 成立用户自定义函数
????用Enterprise Manager 成立用户自定义函数的办法是:在Enterprise Manager 中挑选要成立用户自定义函数的数据库.在数据库对象"User Defined Functions" 上单击右键,从开始菜单中挑选"New User Defined Function" 选项,就会呈现如图13-4 所示的定义用户自定义函数属性对话框.可以在此中指定要定义的函数的名称,并编辑函数的脚本.单击"OK"按钮,则增添用户自定义函数对象到数据库中.
图13-4 定义用户自定义函数属性对话框
13.13.2 改正和删除用户自定义函数
????在Enterprise Manager 中挑选要举行窜改的用户自定义函数,单击右键从快速菜单中挑选"属性"选项,则会呈现与图13-4 近似的改正用户自定义函数构造对话框.可以改正用户自定义函数的函数体、参数等.从快速菜单中挑选"删除"选项,则可删除用户自定义函数.
????用ALTER FUNCTION 号令也可以改正用户自定义函数.此号令的语法与CREATEFUNCTION 相同,因此利用ALTER FUNCTION 号令其实相当于重建了一个同名的函数,用起来不大便利.
????别的,可以用DROP FUNCTION 号令删除用户自定义函数,其语法以下:
????DROP FUNCTION { [ owner_name. ] function_name } [ ,...n ]
例13-22: 删除用户自定义函数chiefinfo
drop function chiefinfo
本章小结
????本章主要介绍了SQL Server 中极其重要的两个概念:游标和视图,游标最为突出的奉献在于其实现了对后果的行操作,从而可以在利用程序中对同一后果集施加差别的数据操作,在面向调集的数据库管理系统和面向行的程序计划二者之间架起了"沟通"的桥梁,实现了两个数据处理方法的安闲交流.视图作为一个查询后果集固然仍与表具有类似的构造,但它是一张虚表,以视图构造显示在用户眼前的数据并非以视图的构造存储在数据库中,而是存储在视图所引用的基本表当中.视图的存在为保障数据库的安全性供应了新手段.除此之外,读者从本章中也可以理解到SQL Server 2000 新增的"用户自定义函数"的成立和利用
以上是“SQL Server数据库技术(90)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论