当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server数据库技术(93)

MSSQL
修复断电等损坏的SQL 数据库
SQL 返回期间内的所有日期
数据库中的内容字段被挂马的替换方法 SQL注入
同一个sql语句 连接两个数据库服务器
SQL Server 空值处理策略[推荐]
sql2005 create file遇到操作系统错误5拒绝访问 错误1802
SQL SERVER 删除重复内容行
SQL SERVER 的SQL语句优化方式小结
数据库高并发情况下重复值写入的避免 字段组合约束
一个有趣的SQL命题 用一条语句切换BIT型的真假值
AspNetPager分页控件 存储过程
SQL Server自动生成日期加数字的序列号
远程连接局域网内的SQL Server 的方法
把数据批量插入具有Identity列的表的方法
SQL Server 索引维护sql语句
从两种SQL表连接写法来了解过去
SQLServer 循环批处理
从每个分类选择10条记录的sql语句
SQLServer XML查询快速入门(18句话)
被遗忘的SQLServer比较运算符谓词

MSSQL 中的 SQL Server数据库技术(93)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 151 ::
收藏到网摘: n/a

  除了使用系统提供的函数外,用户还可以根据需要自定义函数。用户自定义函数(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
    计划绑定选项将用户自定义函数绑定到它所引用的数据库对象如果指定了此选项,则函数所涉及的数据库对象从此将不能被删除或修改,除非函数被删除或去掉此选项。应注意的是,要绑定的数据库对象必须与函数在同一数据库中。

(2) 创建内联表值型用户自定义函数(Inline Table-valued Functions)
其语法如下:


各参数说明如下: