0

私は2つのテーブル、StudentRegsitreとAgendaを持っています。

議題表には、(AgendaId、MatirelId、InstructorId、ClassId、AddedDate、Semester、StartTime、EndTime、DaySchedule) StudentRegsitre (Id、AgendaId、UserId) があります。

ASP.NET C# から StudentId を渡して学生の StartTime 、 EndTime 、 DaySchedule 、 classid をチェックして、 studentRegsitre に重複があるかどうかを確認する必要があります

GO
 Create procedure [dbo].[SP_OverLappingExists] (@AgendaId uniqueidentifier ,@UserId uniqueidentifier  )
 As Begin 
 Declare @CurrentAgendaId uniqueidentifier;
 declare @MatirelId uniqueidentifier;
 declare @InstructorId  uniqueidentifier;
 declare @ClassId  uniqueidentifier;
 declare @Semester nchar(10);
 declare @StartTime time(7);
 declare @EndTime time (7);
 declare @DaySchedule varchar(50);
 declare @UserIdNew uniqueidentifier;
 declare @AgendaIdNew uniqueidentifier;

        if exists (SELECT @CurrentAgendaId = Agenda.AgendaId,@MatirelId= Agenda.MatirelId,
              @InstructorId= Agenda.InstructorId,@ClassId= Agenda.ClassId,@Semester= Agenda.Semester,
              @StartTime= Agenda.StartTime,@EndTime= Agenda.EndTime,@DaySchedule= Agenda.DaySchedule, 
                         @UserIdNew= StudentReg.UserId, @AgendaIdNew= StudentReg.AgendaId 
    FROM         Agenda INNER JOIN
                          StudentReg ON Agenda.AgendaId = StudentReg.AgendaId
                           where StudentReg.UserId = @UserId
      )
      begin
      return 1 
      end 

@currentAgendaId = Agenda.AgendaId の近くに "Incorrect syntax near '='" というエラーがありました。何か良いアイデアがあれば、私と共有してください。

ps : スタディ ケースです。

4

1 に答える 1

0

EXISTSクエリは列を返さないため、列の値を変数に割り当てることはできません。

これは、アスタリスクを使用してすべての列を指定してもパフォーマンスに影響しない 1 つのケースです。一般的な使用法は次のとおりです。

if exists ( select * from ... )

これは次と同等です:

if exists ( select 42 from ... )
于 2012-06-09T14:33:49.217 に答える