SQL SERVER 标量值函数 sql 执行标量值函数
by 陈 亮
--------------------自定义函数--------------
--创建用户定义函数。这是一个已保存 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 级。如果超出最大嵌套级别数,整个调用函数链将失败。
CREATEFUNCTIONHelloWordFunction(@TextVARCHAR(10))
--参数的类型和长度必须指定大小如果不指定会出现值的长度丢失
--返回值的长度也要指定
RETURNSVARCHAR(10)
BEGIN
RETURN@Text
END
调用方式
方式一 :标量函数和存储过程一样,可使用 EXECUTE 语句执行
DECLARE@ReturnValueVARCHAR(10)
EXECUTE@ReturnValue=dbo.HelloWordFunction'HelloWrod'
PRINT@ReturnValue
结果:
方式二:直接调用
Code
更多阅读
如何配置SQL Server 2008管理器 sqlserver2008配置
如何配置SQL Server 2008管理器——简介SQl Server 配置管理器(简称为配置管理器)包含了SQL Server 2008服务、SQL Server 2008网络配置和SQL Native Client配置3个工具,供数据库管理人员做服务器启动停止与监控、服务器端支持的网络协
sql server 2008 r2安装详解 sqlserver2008r2 64位
sql server 2008 r2安装详解——简介本篇文章为大家介绍了安装sql server 2008 安装图解,里面有详细步骤,以及需要注意的事项,希望能帮助有需要的朋友。一、进入安装程序插入SQL Server 2008 R2安装光盘,自动运行后出现“SQL Server
SQL Server SQL触发器经验详解 sqlserver 触发器调试
【SQL Server】SQL触发器经验详解——简介自从上次在经验中使用了触发器,有读者询问我一些关于触发器的相关信息,个人推荐首先你需要先去把触发器最基础的东西了解清楚,然后通过这次的经验,希望能在你理解的基础上,加深你对触发器的了解,
SQL Server如何导入mdf,ldf文件 mdf导入sql server
SQL Server如何导入mdf,ldf文件——简介在平时开发中,经常会遇到数据库SQL Server如导入mdf,ldf文件的问题,下面给你介绍一下怎么做,希望能够帮到你。SQL Server如何导入mdf,ldf文件——工具/原料SQL Servermdf,ldf文件SQL Server如何导
MySql5.1CAPI函数描述 mysql 5.7 json 函数
MySql5.1 C API函数描述[1] mysql_affected_rows()定义函数my_ulonglong mysql_affected_rows(MYSQL *mysql)功能返回sql执行后影响到的行数。返回值 影响或检索的行数。错误无。示例:mysql_query(&mysql,"UPDATE products SET