아래는 프로시저 안의 쿼리 문입니다.
1번 쿼리
--테이블 백업
INSERT INTO SHA_CHECK_BACK
SELECT * FROM SHA_CHECK;
2번쿼리
--데이터 삭제
DELETE FROM SHA_CHECK;
3번쿼리
set @sql = N' insert into SHA_check(UserID, AcaID, check_date,in_time, out_time , check_flag ) '
+ 'select a.UserID,a.AcaID,CONVERT(varchar(10), GETDATE(), 23)as check_date ,b.inTime, b.outTime , ''N'' '
+ ' from('
+ ' select id, UserID, AcaID from sha_student where people=''재원'' and flag=''Y'' '
+ ' )a '
+ ' inner join '
+ ' ( '
+ ' select * from ( select StuID, AcaID, '+@day_inTime+' as ''inTime'','+@day_outTime+' as ''outTime'', '
+ ' reg_date , rank()over(partition by stuid order by reg_date desc ) as ran from SHA_student_weektime )n '
+ ' where ran = 1 '
+ ' )b '
+ ' on a.ID = b.StuID '
+ ' where a.userid not in(select userid from sha_check c where check_date = convert(varchar(10),getdate(),23) and a.userid = c.userid and a.acaid = c.AcaID ) '
--execute sp_executesql @sql
--print @sql
exec (@sql)
4번쿼리
-- 임시테이블 삭제
DELETE FROM sha_check_temp ;
쿼리문의 순서 질문이 이습니다. 상식적으로 생각 할때 순서되로 1번 2번 3번 4번 순으로 쿼리가 진행 되는지요???
오늘 결과가 2,3번이 순서가 바뀐거 처럼 결과가 나온거 같아서 이렇게 질문 드려요 ㅜㅜ
그냥 1번 2번 3번 4번 순서 되로 진행 되는거 맞죠??
goto가 없는 이상 순서되로 실행되는 것이 맞습니다.
값이 안들어 간다는 이야기는 3번 쿼리가 뭔가 잘못된 것 아닐까요?
@sql를 PRINT로 찍어서 Insert를 제외하고 SELECT만 가지고 결과를 한번 보시면 금방 알 수 있을 것 같습니다.