微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 内联标量函数:真实或蒸汽软件?

sql Server中创建内联标量函数的正确语法是什么?

在线图书在Types of Functions章(2005年及以后)中讨论了内联标量函数,就像它们存在一样,就好像不需要BEGIN … END块(与多行函数相反):

For an inline scalar function,there is no function body; the scalar
value is the result of a single statement. For a multistatement scalar function,the function body,defined in a BEGIN…END block,contains a series of Transact-sql statements that return the single value.

在spt_values表中的对象类型列表中,我也注意到了一行“IS:inline scalar function”

SELECT name
FROM master..spt_values
WHERE type = 'O9T'
AND name LIKE '%function%'

我试图创建这样的功能,没有成功:

CREATE FUNCTION AddOne(@n int) RETURNS int
AS
    RETURN @n + 1

错误消息是

Msg 102,Level 15,State 31,Procedure AddOne,Line 3 Incorrect Syntax
near ‘RETURN’.

我在书籍上遗漏了什么,还是出现错误

解决方法

那么AFAIK,没有存在(甚至没有隐藏的[mssqlsystemresource]数据库),没有任何语法来创建一个.所以看来,这是Microsoft通过添加一个类型(和doc!)在sql Server 2005的前提下预期的,但由于某些原因实际上并没有实现.

虽然它是所有Ms sql Server中唯一最需要的功能之一.主要是因为认的UDF是这么慢,我们最终不得不后端ITVF得到相同的效果. (困难和笨拙,但它的作品).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐