Функция sql не получает таблицу и выдает ошибку

Я написал следующую функцию в SQLServer 2005

Следующее является функцией:

create function fnBillParticulars()
return table
as
return (select * from billParticulars where Id='2425')
go

Это дает мне следующие ошибки:

1.Msg 156, Level 15, State 1, Procedure fnBillParticulars, Line 2
  Incorrect syntax near the keyword 'return'.

2.Msg 178, Level 15, State 1, Procedure fnBillParticulars, Line 4
  A RETURN statement with a return value cannot be used in this context.

в чем может быть ошибка?

Пожалуйста, помогите мне.

3 ответа

Решение

Пожалуйста, попробуй:

create function fnBillParticulars()
returns table
as
return (select * from billParticulars where Id='2425')
go

U написано "где" дважды в запросе.

запрос должен быть:

select * from billParticulars where Id='2425'

и использовать таблицу "возврат"

create function fnBillParticulars()
returns table
as
return (select * from billParticulars where Id='2425')
go

Вы можете альтернативно создать VIEW на этом,

CREATE VIEW fnBillParticulars
AS
select * 
from billParticulars 
where where Id='2425'

или если вы хотите table valued function

CREATE FUNCTION fnBillParticulars()
RETURNS @BillParticulars TABLE 
(
   Id       int,
   -- other columns here
) 
AS
BEGIN
   INSERT INTO @BillParticulars (Id, ...) -- specify columns here
    SELECT  * 
    FROM    billParticulars 
    WHERE   Id = '2425';

   RETURN;
END;
Другие вопросы по тегам