Ant*_*ull 16 sql t-sql sql-server user-defined-functions
在SQL Server中创建内联标量函数的正确语法是什么?
在线书籍,在函数类型章节(2005及以上)中,讨论了内联标量函数,就好像它们存在一样,并且好像不需要BEGIN...END
块(与多行函数相比):
对于内联标量函数,没有函数体; 标量值是单个语句的结果.对于多语句标量函数,在BEGIN ... END块中定义的函数体包含一系列返回单个值的Transact-SQL语句.
我还注意到spt_values表中对象类型列表中的"IS:inline scalar function"行:
SELECT name
FROM master..spt_values
WHERE type = 'O9T'
AND name LIKE '%function%'
Run Code Online (Sandbox Code Playgroud)
我试图创建这样一个功能但没有成功:
CREATE FUNCTION AddOne(@n int) RETURNS int
AS
RETURN @n + 1
Run Code Online (Sandbox Code Playgroud)
错误消息是
Msg 102,Level 15,State 31,Procedure AddOne,Line 3'RETURN'附近的语法不正确.
我错过了什么或者联机丛书中是否有错误?
好吧,AFAIK,都不存在(甚至在隐藏的[ mssqlsystemresource ]数据库中也没有)并且没有创建一个语法的语法.所以看起来这是微软必须在SQL Server 2005的预备版中通过为它添加一个类型(以及doc!)而预期的,但是由于某种原因从未真正实现过.
虽然它是所有Ms Sql Server最需要的功能之一.主要是因为默认的UDF是如此之慢,我们最终不得不后端ITVF来获得相同的效果.(困难和笨拙,但它的工作原理).
归档时间: |
|
查看次数: |
4824 次 |
最近记录: |