2009-05-08 7 views
0

このコードでエラーが発生します:
メッセージ156、レベル15、状態1、プロシージャDefaultActivity、行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

関連する問題