如何创建SQL函数以返回BIT?

Ian*_*ien 7 t-sql user-defined-functions

我在下面使用这个脚本来创建一个函数,但是在消息日志中出现错误:

CREATE FUNCTION [dbo].[MyFunction] () RETURNS BIT AS RETURN CAST(1 AS BIT) 
Run Code Online (Sandbox Code Playgroud)

Msg 102,Level 15,State 31,Procedure MyFunction,Line 1'RETURN'附近的语法不正确.

当我更改它以返回表格时,它可以工作:

CREATE FUNCTION [dbo].[MyFunction] () RETURNS TABLE AS RETURN (SELECT 1 [1])
Run Code Online (Sandbox Code Playgroud)

所以我不确定是什么问题.为什么这适用于表而不是一点?

Avi*_*tus 11

更改语法以包含开头和结尾,如下所示:

CREATE FUNCTION [dbo].[MyFunction]() RETURNS bit AS begin RETURN CAST(1 AS bit) end
Run Code Online (Sandbox Code Playgroud)

  • @Avitus Your Table示例是一种特殊的UDF(用户定义函数),称为"*内联表值函数*".与多行表值函数和这样的标量函数(总是多行)相比,它们具有不同的定义格式. (4认同)