| 域名空间 下载中心 社区论坛 信息公告 my小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
|
http://www.asp888.net 豆腐技术站 */ create function 创建用户定义函数,它是返回值的已保存的 transact-sql 例程。用户定义函数不能用于执行一组修改全局数据库状态的 操作。与系统函数一样,用户定义函数可以从查询中唤醒调用。也可以像存储过程一样,通过 execute 语句执行。 用户定义函数用 alter function 修改,用 drop function 除去。 语法 create function [ owner_name.] function_name returns scalar_return_data_type [ with < function_option> [ [,] ...n] ] [ as ] begin 内嵌表值函数 create function [ owner_name.] function_name returns table [ with < function_option > [ [,] ...n ] ] [ as ] return [ ( ] select-stmt [ ) ] 多语句表值函数 create function [ owner_name.] function_name returns @return_variable table < table_type_definition > [ with < function_option > [ [,] ...n ] ] [ as ] begin < function_option > ::= < table_type_definition > ::=
拥有该用户定义函数的用户 id 的名称。owner_name 必须是现有的用户 id。 function_name 用户定义函数的名称。函数名称必须符合标识符的规则,对其所有者来说,该名称在数据库中必须是唯一的。 @parameter_name 用户定义函数的参数。create function 语句中可以声明一个或多个参数。函数最多可以有 1,024 个参数。函数执行时每 使用 @ 符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个函数的参数仅用于该函数本身;相同 scalar_parameter_data_type 参数的数据类型。所有标量数据类型(包括 bigint 和 sql_variant)都可用作用户定义函数的参数。不支持 timestamp scalar_return_data_type 是标量用户定义函数的返回值。scalar_return_data_type 可以是 sql server 支持的任何标量数据类型(text、ntext、 scalar_expression 指定标量函数返回的标量值。 table 指定表值函数的返回值为表。 在内嵌表值函数中,通过单个 select 语句定义 table 返回值。内嵌函数没有相关联的返回变量。 在多语句表值函数中,@return_variable 是 table 变量,用于存储和累积应作为函数值返回的行。 function_body 指定一系列 transact-sql 语句定义函数的值,这些语句合在一起不会产生副作用。function_body 只用于标量函数和多 在标量函数中,function_body 是一系列合起来求得标量值的 transact-sql 语句。 在多语句表值函数中,function_body 是一系列填充表返回变量的 transact-sql 语句。 select-stmt 是定义内嵌表值函数返回值的单个 select 语句。 encryption 指出 sql server 加密包含 create function 语句文本的系统表列。使用 encryption 可以避免将函数作为 sql server schemabinding 指定将函数绑定到它所引用的数据库对象。如果函数是用 schemabinding 选项创建的,则不能更改(使用 alter 语句) 函数与其所引用对象的绑定关系只有在发生以下两种情况之一时才被解除: 除去了函数。
该函数所引用的用户定义函数和视图也已绑定到架构。
注释 如果 returns 子句指定 table,则函数为表值函数。根据函数主体的定义方式,表值函数可分为行内函数或多语句函数。 如果 returns 子句指定的 table 不附带列的列表,则该函数为行内函数。行内函数是使用单个 select 语句定义的表值 如果 returns 子句指定的 table 类型带有列及其数据类型,则该函数是多语句表值函数。 多语句函数的主体中允许使用以下语句。未在下面的列表中列出的语句不能用在函数主体中。 赋值语句。
不确定的函数会产生副作用。副作用是更改数据库的某些全局状态,比如更新数据库表或某些外部资源,如文件或网络等 不允许在用户定义函数主体中内置不确定函数;这些不确定函数如下: @@connections @@total_errors
由于扩展存储过程会对数据库产生副作用,因此调用扩展存储过程的函数是不确定的。当用户定义函数调用会对数据库产 从函数中调用扩展存储过程 与从批处理或存储过程中唤醒调用相似,扩展存储过程在运行 sql server 的 windows? 安全帐户的上下文中执行。存储 函数调用 [database_name.]owner_name.function_name ([argument_expr][,...]) 如果用户定义函数用于定义计算列,则该函数的确定性同样决定了是否可在该计算列上创建索引。只有当函数具有确定性 可以使用由一部分组成的名称唤醒调用表值函数。 [database_name.][owner_name.]function_name ([argument_expr][,...]) 对于 microsoft? sql server? 2000 中包含的系统表函数,唤醒调用时需在函数名的前面加上前缀"::"。 select * 对于导致语句停止执行然后从存储过程中的下一语句继续执行的 transact-sql 错误,在函数中的处理方式不同。在函数 权限 create function 的权限默认地授予 sysadmin 固定服务器角色和 db_owner 和 db_ddladmin 固定数据库角色的成员。 函数的所有者对其函数具有 execute 权限。其他用户不具有 execute 权限,除非给他们授予了特定函数上的 execute 权 若要创建或更改在 constraint、default 子句或计算列定义中引用了用户定义函数的表,用户还必须对这些函数有 示例 create function isoweek (@date datetime) 下面是函数调用。注意 datefirst 设置为 1。 set datefirst 1 iso week b. 内嵌表值函数 use pubs c. 多语句表值函数 create table employees (empid nchar(5) primary key, 表值函数 fn_findreports(inempid) 有一个给定的职员id,它返回与所有直接或间接向给定职员报告的职员相对应的表。 create function fn_findreports (@inempid nchar(5)) -- copy to the result of the function the required columns -- example invocation 编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:web环境下ms sql server中数据的磁带备份与恢复 下一篇:sql表数据操作 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 最新更新 | 热点排行 | 推荐新闻 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 友情链接 | ||||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||