Tsql 如何创建一个SQL函数来返回一点?
我正在使用下面的脚本创建函数,但消息日志中出现错误:Tsql 如何创建一个SQL函数来返回一点?,tsql,user-defined-functions,Tsql,User Defined Functions,我正在使用下面的脚本创建函数,但消息日志中出现错误: CREATE FUNCTION [dbo].[MyFunction] () RETURNS BIT AS RETURN CAST(1 AS BIT) Msg 102,级别15,状态31,程序MyFunction,第1行 “RETURN”附近的语法不正确 当我更改此选项以返回表时,它会起作用: CREATE FUNCTION [dbo].[MyFunction] () RETURNS TABLE AS RETURN (SELECT 1 [1
CREATE FUNCTION [dbo].[MyFunction] () RETURNS BIT AS RETURN CAST(1 AS BIT)
Msg 102,级别15,状态31,程序MyFunction,第1行
“RETURN”附近的语法不正确
当我更改此选项以返回表时,它会起作用:
CREATE FUNCTION [dbo].[MyFunction] () RETURNS TABLE AS RETURN (SELECT 1 [1])
所以我不确定是什么错了。为什么这对一个表有效,但一点也不起作用?更改语法以包含开始和结束,如下所示:
CREATE FUNCTION [dbo].[MyFunction]()
RETURNS bit
AS
begin
RETURN CAST(1 AS bit)
end
那很有效,谢谢。你能详细解释一下为什么它只适用于一张桌子而不适用于一点点吗?这可能会在将来帮助其他人。再次感谢-我将在时间限制过后接受您的回答。@Avitus您的表示例是一种特殊的UDF(用户定义函数),称为“内联表值函数”。与多行表值函数和这样的标量函数(总是多行函数)相比,它们的定义格式不同。