CREATE FUNCTION dbo.fn_Scalar(@today DATETIME) RETURNS BIT AS BEGIN RETURN 1 END CREATE FUNCTION dbo.fn_Table1(@today DATETIME) RETURNS TABLE RETURN SELECT CONVERT(BIT,1) value CREATE FUNCTION dbo.fn_Table2(@today DATETIME) RETURNS @R_TABLE TABLE (value BIT) BEGIN INSERT @R_TABLE SELECT 1 RETURN END -- execute this commands SELECT dbo.fn_Scalar(GETDATE()) -- ok SELECT * FROM dbo.fn_Table1(GETDATE()) -- syntax error SELECT * FROM dbo.fn_Table2(GETDATE()) -- syntax errorSyntax error is a TSQL parser bug ?