Как преобразовать данные из UDF в SQL? - PullRequest
0 голосов
/ 08 мая 2009

Эти коды дают мне ошибку:
Сообщение 156, Уровень 15, Состояние 1, Процедура DefaultActivity, Строка 2 Неверный синтаксис рядом с ключевым словом «ВОЗВРАТ». Сообщение 137, Уровень 15, Состояние 2, Процедура DefaultActivity, Строка 3 Необходимо объявить скалярную переменную "@returnTable". Сообщение 1087, Уровень 15, Состояние 2, Процедура DefaultActivity, Строка 18 Необходимо объявить табличную переменную "@returnTable".

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 @i=@i+1
        end

    RETURN
END

Ответы [ 3 ]

3 голосов
/ 08 мая 2009

Попробуйте указать пустой список аргументов?

CREATE FUNCTION dbo.DefaultActivity()
RETURNS
...
0 голосов
/ 08 мая 2009

Это должно работать:

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 @i=@i+1
        end

    RETURN
END

GO

select * from dbo.DefaultActivity()
0 голосов
/ 08 мая 2009

Я думаю, это должно быть

CREATE FUNCTION dbo.DefaultActivity()
RETURNS                    -- RETURN vs RETURNS here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...