2013-04-10 4 views
0

Я пытаюсь вставить currentDate в таблицу OBJ_Availability. Сначала я делаю временную таблицу всех начальных и конечных точек в таблице. Позже я начинаю новый курсор, где я собираюсь зацикливать все даты от начала до конца.Курсор в процедуре SQLServer

Нужна помощь: Ошибка = Неправильный синтаксис рядом с '@CurrentDay'. На линии 49 и 53

USE [TMA3_Test] 
    GO 
    /****** Object: StoredProcedure [dbo].[CheckNewTechnologyName] Script Date: 04/09/2013 13:48:22 ******/ 
    SET ANSI_NULLS OFF 
    GO 
    SET QUOTED_IDENTIFIER OFF 
    GO 
    alter procedure [dbo].[InsertTrainings] 
    as 

    declare 
    @Firstname varchar(25), 
    @Lastname varchar(25), 
    @TrainingName varchar(150), 
    @StartingDate datetime, 
    @EndingDate datetime, 
    @CurrentDay datetime 

    create table #OBJ_AvailabilityTraining (
      Firstname varchar(25), 
      Lastname varchar(25), 
      TrainingName varchar(150),   
      OBJ_Date datetime 
    ) 

    create table #Dates_temp (
      StartingDate datetime, 
      EndingDate datetime 
    ) 




    declare TrainingCursor cursor for 
    select Firstname, Lastname, TrainingName, StartingDate, EndingDate 
    from VIEW_Solidnet_Training 



    open TrainingCursor 

    fetch next from TrainingCursor into @Firstname, @Lastname, @TrainingName, @StartingDate, @EndingDate 
     while @@fetch_status=0 
     begin 
     insert into #Dates_temp values(@StartingDate, @EndingDate) 


     declare DateCursor cursor for 
     select StartingDate, EndingDate 
     from #Dates_temp 
     where StartingDate = @StartingDate 


     open DateCursor 
     fetch next from DateCursor into @StartingDate, @EndingDate 
     @CurrentDay = @StartingDate 
     while (@CurrentDay<[email protected]) 
     begin 
     insert into #OBJ_AvailabilityTraining values(@Firstname, @Lastname, @TrainingName, @CurrentDay) 
     @CurrentDay = @CurrentDay + 1 
     fetch next from DateCursor into @StartingDate, @EndingDate 
     end 
     fetch next from TrainingCursor into @Firstname, @Lastname, @TrainingName, @StartingDate, @EndingDate 
     end 



    close TrainingCursor 
    deallocate TrainingCursor 
    close DateCursor 
    deallocate DateCursor 

    select * from #OBJ_AvailabilityTraining 

ответ

0

вы написали

@CurrentDay = @StartingDate 

Вы не можете присвоить одной переменной значение другой в SQL, как это ,,,, сделать это так

Set @CurrentDay = @StartingDate 

 Смежные вопросы

  • Нет связанных вопросов^_^