[Irving]SqlServer 标量函数 详解【转】
--创建用户定义函数。这是一个已保存 Transact-SQL 或公共语言运行时 (CLR) 例程,
--该例程可返回一个值。用户定义函数不能用于执行修改数据库状态的操作。
--与系统函数一样,用户定义函数可从查询中调用。标量函数和存储过程一样,可使用 EXECUTE 语句执行。
标量函数的语法格式
CREATE FUNCTION [ schema_name. ] function_name
( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type
[ = default ] }
[ ,...n ]
]
)
RETURNS return_data_type
[ WITH <function_option> [ ,...n ] ]
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
[ ; ]
创建一个简单的标量函数
用户定义函数不能用于执行修改数据库状态的操作 即不能对表进行修改.添加.删除
下列语句在函数内有效:
- 赋值语句。
- TRY...CATCH 语句以外的流控制语句。
- 定义局部数据变量和局部游标的 DECLARE 语句。
- SELECT 语句,其中的选择列表包含为局部变量分配值的表达式。
- 游标操作,该操作引用在函数中声明、打开、关闭和释放的局部游标。只允许使用以 INTO 子句向局部变量赋值的 FETCH 语句;不允许使用将数据返回到客户端的 FETCH 语句。
- 修改 table 局部变量的 INSERT、UPDATE 和 DELETE 语句。
- 调用扩展存储过程的 EXECUTE 语句。
用户定义函数可以嵌套
也就是说,用户定义函数可相互调用。被调用函数开始执行时,嵌套级别将增加;被调用函数执行结束后,嵌套级别将减少。用户定义函数的嵌套级别最多可达 32 级。如果超出最大嵌套级别数,整个调用函数链将失败。
CREATE FUNCTION HelloWordFunction(@Text VARCHAR(10)) --参数的类型和长度必须指定大小如果不指定会出现值的长度丢失 --返回值的长度也要指定
RETURNS VARCHAR(10)
BEGIN
RETURN @Text
END
调用方式
方式一 :标量函数和存储过程一样,可使用 EXECUTE 语句执行
DECLARE @ReturnValue VARCHAR(10)
EXECUTE @ReturnValue=dbo.HelloWordFunction 'HelloWrod'
PRINT @ReturnValue
结果:

方式二:直接调用
PRINT dbo.[HelloWordFunction]('Hello')

[Irving]SqlServer 标量函数 详解【转】的更多相关文章
- malloc 与 free函数详解<转载>
malloc和free函数详解 本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...
- NSSearchPathForDirectoriesInDomains函数详解
NSSearchPathForDirectoriesInDomains函数详解 #import "NSString+FilePath.h" @implementation ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- Linux C popen()函数详解
表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...
- kzalloc 函数详解(转载)
用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0. view plain /** * kzal ...
- Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...
- jQuery.attr() 函数详解
一,jQuery.attr() 函数详解: http://www.365mini.com/page/jquery-attr.htm 二,jQuery函数attr()和prop()的区别: http: ...
- memset函数详解
语言中memset函数详解(2011-11-16 21:11:02)转载▼标签: 杂谈 分类: 工具相关 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大 ...
- CreateFile函数详解
CreateFile函数详解 CreateFile The CreateFile function creates or opens the following objects and returns ...
随机推荐
- Java 数组的三种创建方法
public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intValue=arr[5]; //S ...
- C# DataTable
http://www.cnblogs.com/xun126/archive/2010/12/30/1921557.html http://msdn.microsoft.com/zh-cn/librar ...
- c++ string char* const char*
#include <iostream> #include <string> #include <cstring> using namespace std; int ...
- 在Oracle SQL Developer中创建新连接
步骤: 1.如下图 2.点击“测试”,如果左下角的状态出现“成功”,说明OK
- jQuery 如何先创建、再修改、后添加DOM元素
例如顺序执行[创建]-> [修改]-> [添加]三个动作. 由于jQuery支持链式操作,其实就是设计模式的builder模式,所以我们可以把三个操作串在一起来执行. 首先创建一个p元素, ...
- NOIP2014 行记
不知道OI是啥或者信息学竞赛是啥的可以按`Ctrl+W`. <del>很早开始写的..准备出分之后再发布.</del> 谨以此文纪念我信息学竞赛的第一次正式考试. 背景音乐底部 ...
- HDU4612+Tarjan缩点+BFS求树的直径
tarjan+缩点+树的直径题意:给出n个点和m条边的图,存在重边,问加一条边以后,剩下的桥的数量最少为多少.先tarjan缩点,再在这棵树上求直径.加的边即是连接这条直径的两端. /* tarjan ...
- linux的定时任务crontab
每隔一分钟执行以下语句: #打印当前时间: date "+%Y-%m-%d %T" 保存为/usr/test/test.sh 查看系统中当前用户有多少个定时任务: crontab ...
- SQL Server常见问题总结
写在前面 在QQ群,微信群,论坛中经常帮助使用SQL Server数据库的朋友解决问题,但是有一些最常见最基本的问题,每天都有人问,回答多了也不想再解答了,索性把这些问题整理一下,再有人问到直接发链接 ...
- fd_set 用法
http://www.cnblogs.com/wolflion/archive/2011/07/13/2539137.html select()函数主要是建立在fd_set类型的基础上的.fd_set ...