创建函数时必须使用AS语句。包括MSDN在内的几乎每个示例在创建函数时都使用AS语句。从MSDN,
但是实际上我可以创建一个函数而无需使用AS语句并且它可以工作。
那么,为什么不使用AS语句就可以创建函数呢?
第二个问题是,我对存储过程尝试了相同的场景,并且意识到使用AS语句是强制性的。的确,使用AS对于创建存储过程是必需的,但对于创建函数不是必需的。
官方文档中的语法是
--Transact-SQL Scalar Function Syntax
CREATE FUNCTION [ schema_name. ] function_name
( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type
[ = default ] [ READONLY ] }
[ ,...n ]
]
)
RETURNS return_data_type
[ WITH <function_option> [ ,...n ] ]
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
[ ; ]
请注意,AS
此处的使用是可选的。(请参见Transact-SQL语法约定(Transact-SQL))
是的,AS
在创建存储过程时是必需的,但在创建函数时则不需要。这只是有关该语言的许多怪癖之一。
我个人更喜欢AS
在创建函数时就将其用作样式,因为它可以更清楚地将函数的签名与主体分开,并且使语法与用于创建存储过程的语法更加一致(即使语言不需要)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句