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(用户定义函数),称为“内联表值函数”。与多行表值函数和这样的标量函数(总是多行函数)相比,它们的定义格式不同。