2009-05-08 2 views
0

이 코드는 다음과 같은 오류 메시지를 표시합니다.
메시지 156, 수준 15, 상태 1, 프로 시저 DefaultActivity, Line 2 키워드 'RETURN'근처에서 구문이 잘못되었습니다. 메시지 137, 수준 15, 상태 2, 프로 시저 DefaultActivity, 줄 3 "@returnTable"스칼라 변수를 선언해야합니다. 메시지 1087, 수준 15, 상태 2, 프로 시저 DefaultActivity, 줄 18 "@returnTable"테이블 변수를 선언해야합니다.SQL에서 UDF로부터 datatable을 변환하는 방법은 무엇입니까?

CREATE FUNCTION dbo.DefaultActivity 
RETURNS 
    @returnTable table (
[VisitingCount] int, 
[Time] nvarchar(50) 
) 

AS 
BEGIN 

DECLARE @DateNow DATETIME,@i int 
set @DateNow='00:00' 
set @i=1; 

    while(@i<1440) 
     begin 
      set @DateNow=DATEADD(minute, 1, @DateNow) 
       insert into @returnTable ([VisitingCount], [Time]) values(0, right(left(convert(nvarchar, @DateNow, 121), 16), 5)) 
      set @[email protected]+1 
     end 

    RETURN 
END 

답변

0

이 작동합니다 : 나는 그것을 변경

CREATE FUNCTION dbo.DefaultActivity() 
RETURNS @returnTable 
TABLE 
(
    [VisitingCount] int, 
    [Time] nvarchar(50) 
) 
AS 
BEGIN 
    DECLARE @DateNow DATETIME,@i int 

    set @DateNow='00:00' 
    set @i=1; 

    while(@i<1440) 
     begin 
       set @DateNow=DATEADD(minute, 1, @DateNow) 
       insert into @returnTable ([VisitingCount], [Time]) 
       values(0, right(left(convert(nvarchar, @DateNow, 121), 16), 5)) 
       set @[email protected]+1 
     end 

    RETURN 
END 

GO 

select * from dbo.DefaultActivity() 
+0

올바르지 않습니다. 나는 테이블 표정 부호를 필요로한다 !!! – Penguen

+0

감사합니다. 당신은 그것을 해결했습니다 ... – Penguen

+0

@ykaratoprak - 질문은 Andomar에 의해 올바르게 답변되었습니다 (괄호를 추가하기 만하면됩니다). 그는 전체 코드를 게시하지 않았습니다. – kristof

0

가 나는

CREATE FUNCTION dbo.DefaultActivity() 
RETURNS     -- RETURN vs RETURNS here 
+0

합니다. 결과는 이전과 동일합니다. – Penguen

3

빈 인수 목록을 지정 시도해야 추측?

CREATE FUNCTION dbo.DefaultActivity() 
RETURNS 
... 
+1

그게 전부입니다 -하지만 OP는 "복사하여 붙여 넣기"해결책이 필요합니다. – kristof

+1

+1. 당신의 해결책은 정확합니다, 나는 단지 모든 것을 만들어서 다른 오류가 없는지 확인했습니다. – edosoft

관련 문제