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

MSSQL
SQL Server导入导出数据三种方式比较
SQL Server_8525引擎错误怎么办?
Sql Server的复制功能快速学习
汇总SQL Server 2000安装常见问题
存储过程实例:SQL Server Sa密码破解
SQL Server危险扩展删除与恢复详解
SQL Server注入的四种个人经验和技巧方法
SQL Server对上亿表的排序和join的问题解决
使用SQL Server中COALESCE()函数的方法
SQL Server 2005混合模式登录配置
解决SQL Server不允许进行远程连接
SQL Server 2005的output子句用法
Oracle和SQL Server分析挖掘函数
mysql INSERT command denied to user
未与信任 SQL Server 连接相关
SQL Server存储的层级数据读出成树显示
SQL Server存储层级数据实现无限级分类
MySQL server has gone away问题原因
sqlserver与oracle的区别
mysql与sqlserver的所有区别

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 142 ::
收藏到网摘: 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)
其语法如下:


各参数说明如下: